2013-06-01 21 views
5

jQuery $ .ajax()を使用しようとしていますが、いくつかの問題があります。ここで

は、私がPOSTに使用するテキストボックスフィールドです:

<input name="url" class="url" type="text" > 

ここでは、コードです:

$.ajax({ 
     type: "post", 
     url: "file.php", 
     data: $(this).serialize(), 
     success: function(data) { ............... 

今これはfile.phpです:今

<?php 
if($_REQUEST['url']) 
{ 

    $url = $_REQUEST['url']; 
    $url = file_get_contents($url); 
    // I would need now to return something here but not sure how??!! 
} 
?> 

私の質問は、このPHPコードで変数を返す方法と上記のコードでそれらを使用することです。つまり、$ .ajax()の成功部分を意味します。また、$ url変数にいくつか追加のものを実行したい場合は、どうすればいいですか?それらを返す方法? :/

答えて

1

「戻り値」を印刷/エコーするだけです。あなたのJSで

file.phpその後

<?php 
if($_REQUEST['url']) 
{ 

    $url = $_REQUEST['url']; 
    $url = file_get_contents($url); 
    // I would need now to return something here but not sure how??!! 
    echo "something"; 
} 
?> 

:サイドノートとして

$.ajax({ 
    type: "post", 
    url: "file.php", 
    data: $(this).serialize(), 
    success: function(data) { 
     console.log(data); // "something" 
    } 
}); 

。あなたのスクリプトはURLを受け入れてそれを取り込むように見えます。そのようなスクリプトを乱用することは可能です。あなたがそれを認識していることを確認してください。

+0

そして、それはそのようなものを使用するのが正しいです: "$( 'いくつかのテキストボックス')。writeText(data); "? –

2

いくつかの変数/フィールドを返す場合は、JSON文字列をエコーするのが最善の方法です。ここで小さな例です:

PHPコード:

<?php 
if($_REQUEST['url']) 
{ 

    $url = $_REQUEST['url']; 
    $url = file_get_contents($url); 

    $result['var1'] = 'something'; 
    $result['var2'] = 500; 

    echo json_encode($result); 
} 
?> 

JSコード:

$.ajax({ 
    type: "post", 
    url: "file.php", 
    data: $(this).serialize(), 
    dataType: 'json', // maybe not needed? I do not know if jQuery autodetects it 
    success: function(data) { 
     // here you can use data.var1 and data.var2 to read the fields 
    } 
});