Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.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
PHP数组到JSON.parse javascript_Javascript_Php_Json - Fatal编程技术网

PHP数组到JSON.parse javascript

PHP数组到JSON.parse javascript,javascript,php,json,Javascript,Php,Json,我有两个页面,第一个是index3.php,它有一个名为itemAction.php的操作页面,处理来自数据库的查询并返回json_encode的回音 我要寻找的是如何访问下面返回的JSON数组。My itemsAction.php返回以下内容: [{"0":"3","prod_id":"3","1":"red flower","prod_name":"red flower","2":"natural flower","prod_dtl":"natural flower","3":"1500",

我有两个页面,第一个是index3.php,它有一个名为itemAction.php的操作页面,处理来自数据库的查询并返回json_encode的回音

我要寻找的是如何访问下面返回的JSON数组。My itemsAction.php返回以下内容:

[{"0":"3","prod_id":"3","1":"red flower","prod_name":"red flower","2":"natural flower","prod_dtl":"natural flower","3":"1500","prod_price":"1500","4":"2","Cateogry_cat_id":"2"},{"0":"4","prod_id":"4","1":"blue flower","prod_name":"blue flower","2":"natural flower","prod_dtl":"natural flower","3":"1500","prod_price":"1500","4":"2","Cateogry_cat_id":"2"},{"0":"5","prod_id":"5","1":"yellow flower","prod_name":"yellow flower","2":"natural flower","prod_dtl":"natural flower","3":"1500","prod_price":"1500","4":"2","Cateogry_cat_id":"2"},{"0":"6","prod_id":"6","1":"white flower","prod_name":"white flower","2":"natural flower","prod_dtl":"natural flower","3":"1500","prod_price":"1500","4":"2","Cateogry_cat_id":"2"}]
这是我的index3.php

<?php
include("dbh.php");
?>
<html>
<head>
    <link href="bin/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
    <script>
    //practice onchange
    window.onload = function (){
    var onChange = document.getElementById("selection");
    onChange.addEventListener("change", change);
    function change(){
        var selectedItemso = document.getElementById("selection");
        var catValue= selectedItemso.options[selectedItemso.selectedIndex].value;
        var url = "itemsAction.php?cat=" + catValue;
        var xhr = new XMLHttpRequest();
        xhr.open('GET', url, true);
        xhr.onreadystatechange = function () {
            if (xhr.readyState == 4) {
                findoutLoaction(xhr.responseText);
            }
        }
        xhr.send();
    }
    function findoutLoaction(data) {
       var json = JSON.parse(data);
       var address = json.myArray[1].prod_name; // Here's the I have an issue
       alert(address);
       targetLoc.innerHTML = address;
    }
    }
    </script>
</head>
<body>
    <div id="comments">
    <hr>
    <div id="selectOptions">
    <select id="selection">
        <option value="1">Food</option>
        <option value="2">Flowers</option>
        <option value="3">Clothes</option>
        <option value="4">Toys</option>
        <option value="5">Perfoume</option>
    </select>   
    </div>    

    </div>
 </div>
</body>
</html>

//改过自新
window.onload=函数(){
var onChange=document.getElementById(“选择”);
onChange.addEventListener(“变更”,变更);
函数更改(){
var selectedItemso=document.getElementById(“选择”);
var catValue=selectedItemso.options[selectedItemso.selectedIndex].value;
var url=“itemsAction.php?cat=“+catValue;
var xhr=new XMLHttpRequest();
xhr.open('GET',url,true);
xhr.onreadystatechange=函数(){
if(xhr.readyState==4){
findoutLoaction(xhr.responseText);
}
}
xhr.send();
}
函数findoutLoaction(数据){
var json=json.parse(数据);
var address=json.myArray[1].prod_name;//下面是我遇到的问题
警报(地址);
targetLoc.innerHTML=地址;
}
}

食物 花 衣裳 玩具 表演
您已经有了数据。您应该能够以如下方式使用for…遍历数组:

for (var key in json) {
    console.log("key: " + key);
    console.log("array item:" + json[key]);
}

插入此代码而不是您的**..**线路。您可以像php中的任何关联数组一样使用您的数组。

我认为您的JSON结构是错误的

{..}是对象, […]是数组

所以在json中,[{…},{…},{…},{…}]是一个由4个没有键的对象组成的数组,可以通过索引访问

在每个对象中,您都正确地使用了关键点,但命名可能是错误的。你有:

{0:“3”

1:“红花”

2.“天然花”

3:“1500”4:“2”

目录目录目录目录id:“2”

产品dtl:“天然花卉”

产品标识:“3”

产品名称:“红花”

产品价格:“1500”}

左是关键,右是价值


还有:json[0]。prod_name会给您第一个prod name“read flower”,依此类推。

最好将其注释掉,而不是添加
***
!您遇到了什么问题?为什么有
myArray
?这不在你的json中。应该是
json[0]。产品名称