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
});

您可以将 java 脚本变量“数据”作为关联数组处理,就像在 PHP 中一样

另外,看看你如何填充 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 回答