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 変数で追加の処理を実行したい場合は、どうすればよいですか? それらを返す方法は?:/

4

2 に答える 2

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
    }
});
于 2013-06-01T14:19:42.383 に答える
1

「戻り値」を印刷/エコーするだけです。

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";
}
?>

次に、JSで:

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

補足として。スクリプトは、任意の URL を受け入れてフェッチするように見えます。そのようなスクリプトを悪用することは可能です。ということをご承知おきください。

于 2013-06-01T14:08:56.987 に答える