PHP数组到JSON.parse javascript
我有两个页面,第一个是index3.php,它有一个名为itemAction.php的操作页面,处理来自数据库的查询并返回json_encode的回音 我要寻找的是如何访问下面返回的JSON数组。My itemsAction.php返回以下内容: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",
[{"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]。产品名称