Php 使用jQuery,我如何将json数组分配给jQuery数组的索引
假设我正在从php中的first.php和second.phpcoding检索json格式的数据。我想在jQuery数组的数组中分配这个json数据。让数组为var total=[index1,index2]来自first.php的第一个json数据将分配给total的第一个索引,来自second.php的第二个json数据将分配给total的第二个索引。我将如何做到这一点。我尝试了以下代码。我是最大的,所以如果有任何错误,那么对不起。谢谢你回复我,谢谢 jqueryPhp 使用jQuery,我如何将json数组分配给jQuery数组的索引,php,jquery,arrays,json,Php,Jquery,Arrays,Json,假设我正在从php中的first.php和second.phpcoding检索json格式的数据。我想在jQuery数组的数组中分配这个json数据。让数组为var total=[index1,index2]来自first.php的第一个json数据将分配给total的第一个索引,来自second.php的第二个json数据将分配给total的第二个索引。我将如何做到这一点。我尝试了以下代码。我是最大的,所以如果有任何错误,那么对不起。谢谢你回复我,谢谢 jquery var total = [
var total = ['index1','index2'];
var ajax = new XMLHttpRequest();
var method = "GET";
var url = "first.php";
var asynchronous = true;
ajax.open(method,url,asynchronous);
//sending ajax request.
ajax.send();
//receiving response from the first.php
ajax.onreadystatechange = function(){
if(this.readyState== 4 && this.status == 200){ //readyState==4 means request is finish and response is ready
//status==200 is 'OK'
var data = JSON.parse(this.responseText);
for(var a=0; a<data.length; a++){
total['index1']=data[a];
}
}
}console.log(total['index1']); //i want the output here
var url="second.php";
ajax.open(method,url,asynchronous);
ajax.send();
ajax.onreadystatechange = function(){
if(this.readyState== 4 && this.status == 200){ //readyState==4 means request is finish and response is ready
//status==200 is 'OK'
var data1 = JSON.parse(this.responseText);
for(var a=0; a<data1.length; a++){
total['index2']=data1[a];
}
}
}
second.php
include 'connection.php';
$data = array();
$query=mysqli_query($con,"select * from tabel_name ORDER BY id ASC");
if(mysqli_num_rows($query)){
while($row = mysqli_fetch_assoc($query)){
$data[] =$row;
};
echo json_encode($data);
}
我只是想将第一个json数组分配给index1,并在console.log中显示,将第二个json数组分配给index2 您使用了错误的属性长度。正确的属性是for语句中的长度
ajax.onreadystatechange = function(){
if(this.readyState== 4 && this.status == 200){ //readyState==4 means request is finish and response is ready
//status==200 is 'OK'
var data = JSON.parse(this.responseText);
for(var a=0; a<data.length; a++){
total['index1']=data[a];
}
// Here, server has returned response
console.log(total['index1']); //i want the output here
}
}
// Here, server has not yet returned response
我发现了问题。您可以在onreadystatechange回调中使用它,但它不会设计ajax变量 我已经在ajax1中重命名了ajax变量,并创建了第二个ajax2 请尝试以下代码:
var total = {index1: [], index2: []};
var ajax1 = new XMLHttpRequest();
var method = "GET";
var url = "first.php";
var asynchronous = true;
ajax1.open(method,url,asynchronous);
//receiving response from the first.php
ajax1.onreadystatechange = function(){
if(ajax1.readyState== 4 && ajax1.status == 200){ //readyState==4 means request is finish and response is ready
//status==200 is 'OK'
var data = JSON.parse(ajax1.responseText);
for(var a=0; a<data.length; a++){
total['index1'].push(data[a]);
}
console.log('=== index1 ===');
console.log(total['index1']); //i want the output here
}
}
//sending ajax request.
ajax1.send();
var ajax2 = new XMLHttpRequest();
var url="second.php";
ajax2.open(method,url,asynchronous);
ajax2.onreadystatechange = function(){
if(ajax2.readyState== 4 && ajax2.status == 200){ //readyState==4 means request is finish and response is ready
//status==200 is 'OK'
var data1 = JSON.parse(ajax2.responseText);
for(var a=0; a<data1.length; a++){
total['index2'].push(data1[a]);
}
console.log('=== index2 ===');
console.log(total['index2']); //i want the output here
}
}
ajax2.send();
抱歉,我编辑了我的问题,现在您可以看到正确的问题了好的,您的console.log会立即运行,但ajax请求尚未返回。尝试插入console.logtotal;就在onreadystatechange回调中的for语句之后。我的代码是对的还是错的。json数据是否将正确分配给索引?你可以编辑我的问题并发布它。作为回答,我认为他是对的,但你处于异步模式。所以,您的服务器在您运行console.logtotal['index1']之后进行应答。实际上,我没有正确地理解您。您能为我详细说明一下吗?谢谢。我脑子里有个问题?我可以问一下吗?`total['index1']`在这个数组中,它意味着total的第一个索引?我是对的,它等于total['index1']意味着total={index:[]}??我是righttotal['index1']=total.index1您可以通过var total={index1:[]}创建它,但是total['index1']不是total={index:[]},因为缺少1。请注意,index1是您的初始键,我们可以有另一个键,如myindex:total['myindex']=total.myindex或total={myindex:[]}是的,是的,很抱歉我错过了1
var total = {index1: [], index2: []};
var ajax1 = new XMLHttpRequest();
var method = "GET";
var url = "first.php";
var asynchronous = true;
ajax1.open(method,url,asynchronous);
//receiving response from the first.php
ajax1.onreadystatechange = function(){
if(ajax1.readyState== 4 && ajax1.status == 200){ //readyState==4 means request is finish and response is ready
//status==200 is 'OK'
var data = JSON.parse(ajax1.responseText);
for(var a=0; a<data.length; a++){
total['index1'].push(data[a]);
}
console.log('=== index1 ===');
console.log(total['index1']); //i want the output here
}
}
//sending ajax request.
ajax1.send();
var ajax2 = new XMLHttpRequest();
var url="second.php";
ajax2.open(method,url,asynchronous);
ajax2.onreadystatechange = function(){
if(ajax2.readyState== 4 && ajax2.status == 200){ //readyState==4 means request is finish and response is ready
//status==200 is 'OK'
var data1 = JSON.parse(ajax2.responseText);
for(var a=0; a<data1.length; a++){
total['index2'].push(data1[a]);
}
console.log('=== index2 ===');
console.log(total['index2']); //i want the output here
}
}
ajax2.send();