【问题标题】:jsonp: callback jQuery AJAX with Multiple Array datajsonp:使用多个数组数据回调 jQuery AJAX
【发布时间】:2013-02-23 21:45:08
【问题描述】:

这里我正在做一个 JSONP 请求,它将获取一个对象字面量传递给回调函数。

我的问题:

1.从 filename.php 我传递了两个不同的数组:

        echo $_GET['jsoncallback'] . '(' . json_encode($manufacturers). ');';               
       echo $_GET['jsoncallback'] . '(' . json_encode($Stock). ');';

2.我一次只接收一个数组作为输出。 3. 我需要两个数组。

                   function onLoad(){
                        var output = $('#product');
                        $.ajax({
                            url:'filename.php',
                            data : {type : 'details'},
                            dataType: 'jsonp',
                            jsonp: 'jsoncallback',
                            timeout: 5000,
                            success:function(data){
                                $.each(data, function(c,prdetail){

                                    if(prdetail.field_name=='' || prdetail.field_name==undefined )
                                    {
                                        var firstdata= '<h2 >'+prdetail.field_name1+ '</h2>';
                                        output.append(firstdata);
                                    }
                                    else
                                    {
                                        var secondata ='<h2 >'+prdetail.field_name2+ '</h2>';
                                        output.append(secondata);
                                    }
});
            }
        });
    }

文件名.PHP

     if($status=1)
      {
            $manufacturers_sql = mysql_query('select * FROM tablename');
    $rowcount = mysql_num_rows($result);
    $records = array();
    $row = mysql_fetch_assoc($result);
    $records[] = $row;

     echo $_GET['jsoncallbacks'] . '(' . json_encode($records) . ');';
         }
        else
         { 
            $manufacturers_sql = mysql_query('select * FROM tablename');
    $rowcount = mysql_num_rows($result);
    $records = array();
    $row = mysql_fetch_assoc($result);
    $records[] = $row;

     echo $_GET['jsoncallbacks'] . '(' . json_encode($records) . ');';
           }

【问题讨论】:

  • 那行不通,您应该将数组合并到 1 个对象中。因为分别回显两个数组的结果是您请求一个带有 2 个函数(具有相同名称)的 Javascript 文件
  • 是否可以附加对象,我的意思是通过提供不同的名称

标签: ajax jquery callback jsonp


【解决方案1】:

试试

$response = array();

$response['manufacturers'] = $manufacturers;
$response['Stock'] = $Stock;

echo $_GET['jsoncallback'] . '(' . json_encode($response). ');';

【讨论】:

  • 你的意思是在php文件中这样做
  • @NewBorn 是的..为什么..??你没有。?
  • 我的编码就像 $row = mysql_fetch_assoc($result); $制造商[] = $行;你要求我重写像 $response['manufacturers'] = $manufacturers;
猜你喜欢
  • 2015-02-03
  • 1970-01-01
  • 1970-01-01
  • 2014-08-14
  • 2011-11-15
  • 1970-01-01
  • 1970-01-01
  • 2015-03-11
  • 2014-05-25
相关资源
最近更新 更多