Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 访问json对象值时出现问题_Jquery_Json - Fatal编程技术网

Jquery 访问json对象值时出现问题

Jquery 访问json对象值时出现问题,jquery,json,Jquery,Json,我遇到了一个问题控制台。记录从jQueryAjax调用发送回脚本的json对象的值 剧本: for(i=0; i<IDs.length; i++) { var vendor = IDs[i]; $j.ajax({ type: "POST", url: "/ajax_calls/updatePrices.php", data: { 'vendorID':

我遇到了一个问题控制台。记录从jQueryAjax调用发送回脚本的json对象的值

剧本:

for(i=0; i<IDs.length; i++)
    {
        var vendor = IDs[i]; 
        $j.ajax({
                type: "POST",
                url: "/ajax_calls/updatePrices.php",
                data: { 'vendorID': vendor, 'product_id': product_id}
                }).done(function(data) {
                    console.log('The data is ' + data);

                        var basePrice = simpleArray[vendor][colorSelected];

                        //if(data.tier2_range_start[i])
                            console.log('Range start is data.tier2_range_start: ' + data.tier2_range_start);

                        if (qty < data.tier2_range_start){
                            simpleArray[vendor][colorSelected]= basePrice * qty;
                        }
                        else if (qty > data.tier2_range_start){
                            simpleArray[vendor][colorSelected]= (basePrice * qty) * data.tier2_discount;
                        }
                        else if (qty > data.tier3_range_start){
                            simpleArray[vendor][colorSelected]= (basePrice * qty) * data.tier3_discount;
                        }
                        else if (qty > data.tier4_range_start){
                            simpleArray[vendor][colorSelected]= (basePrice * qty) * data.tier4_discount;
                        }
                        else if (qty > data.tier5_range_start){
                            simpleArray[vendor][colorSelected]= (basePrice * qty) * data.tier5_discount;
                        }
                        else{
                            console.log('Something went wrong');
                        }


                    $j('.details'+vendor+ ' .priceBlock').empty();
                    $j('.details'+vendor+ ' .priceBlock').append('<span>'+simpleArray[vendor][colorSelected]+'</span>');
                });
        }//end for

为什么data.tier2\u range\u start未定义?

您的问题可能在于
数据[vendor]。tier2\u range\u start

如果从服务器得到的所有响应与示例的形式相同(
[Array,Array,Object]
),则只有当
供应商=2
时,您的代码才会起作用。否则,您将尝试访问数组中不存在的成员或访问不存在的元素


因此,您可以检查使用
IDs
中的值作为索引是否真的是您想要的;在我的jquery中。有人知道为什么吗?

您需要告诉jQuery返回的数据是json,除非您在响应中放入适当的mime头,否则jQuery怎么知道

PHP开头的某个地方:
header('Content-type:text/json')

在ajax中:

...
data: { 'vendorID': vendor, 'product_id': product_id},
dataType: "json",
...
那么jQuery就是在为您做这项工作。你的痕迹应该是这样的

[15:06:13.397] The data is Object object

在请求中,什么是
IDs
?您的数据已经是一个数组,因此不需要JSON.parse。不过,我不太理解您返回的json。这是一个混合值的数组,前两个值是空数组,第三个是表示供应商的对象。我需要从数据库调用的每个供应商ID的值(不止一个SQL请求),因此我尝试回显一个矩阵数组,并将其作为json对象访问。我不确定要更改什么,也不确定此时如何访问。试图避免为每个供应商单独调用ajaxID@ExplosionPillsID可以是[5,4]例如,好吧,我完全改变了一切,对每个ID进行单独的ajax调用,但我仍然无法访问值。请参见上面的更改!我修改了所有代码,一次只返回一个数据集。见上文。为什么我不能用data.tier2\u range\u访问值?返回数据时开始?Php中的json\u encode函数不起作用?lol.@CaitliNHavener:您将如何将从服务器检索到的json字符串传递回服务器,以便对其进行json编码?它位于需要将json字符串转换为JS对象的客户端。这通常是由jQuery Ajax完成的,当jQuery知道数据是json时。[PHP Object]=>json_encode()=====send===>Browser/JS(jQuery,eval,json.parse(),…)=>JavaScript Object==>“Object.property”,除非用
dataType
jQuery尝试猜测它。也许他只是没认出那是JSON?
...
data: { 'vendorID': vendor, 'product_id': product_id},
dataType: "json",
...
[15:06:13.397] The data is Object object