3

SQLクエリからajax成功データまで、配列内のデータを取得しようとしています。ここに私が試したコードがあります、

function adminchecksub(value1){
//alert('hi');
var value1=$('#adminsid').val();
//alert(value1);
if(value1==''){
alert('Please enter a Sub id');
}
else{
//alert(value1);
 $.ajax({

                                        type: 'POST',
                                        url: root_url + '/services/services.php?method=adminsubcheck',
                                        data: {value1:value1},
                                        async: true,
                                        success: function (data) {
                                                alert(data);

                                                if (data == 1) {
                                                        alert('inside');
                                                        //window.location.assign(rdurl+"?sid="+sid);
                                                        return true;
                                                } else {
                                                        //alert('does not exist!');
                                                       //alert('outside');
                                                        return false;
                                                }

                                        }
                                });
}

上記のajax呼び出しから要求されたphpメソッドでは、配列を返すこの関数によって返されるデータを取得する必要があります

   function adminsubcheck($sid){
$subid=$sid['value1'];
$row = array();
//echo $subid;
$query = "SELECT Sub_id,Status,Sub_type FROM Sub WHERE Sub_id=$subid";        
        //echo $query;
        //echo $subid;
        $queryresult = mysql_query($query);
        $count  = mysql_num_rows($queryresult);
         //echo $count;

         while ($r = mysql_fetch_assoc($queryresult)) {

           $row[] = $r;
        } 
        return $row;

}

ここで $row は、すべての項目を個別に取得する必要がある ajax 関数にデータとして配列を返しています。値をajax呼び出しに入れるのを手伝ってくれる人もいます。前もって感謝します..

4

3 に答える 3

0
return $row;

このように置き換えます

echo json_encode($row);

このように ajax に dataType='json' を追加します

dataType: 'json',
于 2013-02-09T04:29:48.027 に答える
0

ajax呼び出しで値を取得したい場合は、次のようにする必要があると思います:

    while ($r = mysql_fetch_assoc($queryresult)) {
       $row[] = $r;
    }

    echo json_encode(array('data'=>$row));
    exit;
于 2013-02-09T04:31:30.780 に答える
0

PHP ファイルでは、次の方法で配列を json オブジェクトとして返すことができます (PHP ファイルが結果をエコーし​​て javascript に返す方法に注意してください)。

...
$json = json_encode($row);
echo $json

次に、javascrip ajax に以下を追加します。

 $.ajax({

...
 // Whatever code you currently have
...

}).done(function ( json ) {

    var data = JSON.parse(json);

    //Continue with javascript
});

PHPのようにJavaスクリプトの変数「data」を連想配列として扱うことができます

また、php 変数 $row の設定方法を確認し、次のように調整します。

$cnt = 0;
while ($r = mysql_fetch_assoc($queryresult)) {

        $row[$cnt] = $r;
        $cnt++;

} 
 $json = json_encode($row);
    echo $json;

JavaScript では、データ変数で次の方法で行にアクセスできます。

var value = data[0]['field_name'];

上記のステートメントでは、0 は $cnt の値に対応します (つまり、mysql は行番号を返します)。

于 2013-02-09T04:31:36.803 に答える