1

ajax呼び出しを介してjson文字列と変数を送信し、phpファイルのクエリを編集しようとしています。私のコードは次のようになります。

queryData = {
    "data": {
        "data_string": {
            "data": "oil",
            "default_field": "Content"
        }
    }
};
from = 0;
$.ajax({
    url: "/elasticsearch-head/lib/es/queryManipulate.php",
    type: 'POST',
    data: 'dataString',
    datatype: 'json',
    data: {
        field: queryData,
        start: this.from
    },
    success: function(data) {
        Dumper.alert(data);
    }
});

PHPファイルは次のようになります。2つの値を変数に取り込んだので、phpでjsonを変更し、値を{"from":$ from、 "data":{"data_string":{"data"の形式で返します。 :"oil"、 "default_field": "Content"}}}

<?php
$testData=$_POST["field"];
$from=$_POST["start"];
?>

クエリを4回返す必要があり、$ fromの値が10ずつ増加するたびにajaxとphpでそれを行うことは可能ですか?

4

1 に答える 1

1

それが私の解決策になります:

function retreiveData(from)
{
    queryData={"data":{"data_string":{"data":"oil","default_field":"Content"}}};
    $.ajax({
        url:"/elasticsearch-head/lib/es/queryManipulate.php",
        type: 'POST',
        data: 'dataString',
        datatype: 'json',
        data: {field : queryData, start : from},
        success:function(data)
        {
            Dumper.alert(data);
            if(from < (4-1)*10)
            {
                retreiveData(from+10);
            }
        }
    });
}
retreiveData(0);

これは、自分自身を4回呼び出す再帰関数です。

編集:または、私があなたの質問を読み間違えた場合は、サーバー側でforループを使用できます:

<?php
$testData=$_POST["field"];
$from=$_POST["start"];
for($i=0; ctype_digit($from) && is_numeric($from) && $i <  4; $i++)
{
    $from+=10;
    //process data on the server side
    //echo $testData; // or whatever
}
?>

これにより、データを4回処理できます。

于 2012-07-15T13:42:15.300 に答える