2015-02-27 6 views
1

мой запрос дает результат query_string и query_string_id я хочу, чтобы результат для предоставления данных для AJAX и отправить его в PHPотправить ассоциативный массив из Аякса PHP

, но я не знаю как отправить ассоциативный массив через AJAX

Просьба помочь мне построить мой код

function querySuccessEnds(tx,results) { 
    var len = results.rows.length; 
    console.log("DEMO table: " + len + " rows found."); 
    var deltaArray=new Array(); 
    for (var i=0; i<len; i++){ 
     deltaArray[i]=[]; 
     deltaArray[i]['query']=results.rows.item(i).query_string 
     deltaArray[i]['sync_query_id']=results.rows.item(i).sync_query_id 
    } 

    var data_to_send = JSON.stringify(deltaArray); 
    console.log("data"+data_to_send); 
    $.ajax({//to get online data 
     type:"POST", 
     url:galileoServer + "actions.php", 
     data:"get=update&queries="+data_to_send, 
     success:function(result){ 
      console.log(result); 
     }, 
     error: function(xhr, status, error) { 
      console.log(xhr.responseText); 
     } 
    }); //EOC ajax 

}// EOC successUpdate 

мой PHP файл

$data = json_decode(stripslashes($_REQUEST['queries'])); 


foreach($data as $a){ 
    echo $a->sync_query_id; 
    echo $a->query; 
} 
+0

я думаю, что вы имели в виду использовать 'JSON.stringify (deltaArray);' –

+0

я использовал его, но его не использовать – siddhesh

+0

что точно получить сценарий? возможно, в запросе есть разрывающие символы .... попробуйте использовать encodeURIComponent (data_to_send); –

ответ

2

В зависимости от объема данных, отправленного, я хотел бы предложить, либо используя данные непосредственно:

$.ajax({ 
    type:"POST", 
    url:galileoServer + "actions.php", 
    data:{get:'update',queries:deltaArray}, 
    success:function(result){ 
     console.log(result); 
    } 
}); 

или с помощью FormData:

var formdata = new FormData(); 
formdata.append("get","update"); 
formdata.append("queries",deltaArray) 

$.ajax({ 
    type:"POST", 
    url:galileoServer + "actions.php", 
    data:formdata, 
    success:function(result){ 
     console.log(result); 
    } 
}); 

OFC это приводит к изменению в РНР:

$data = $_REQUEST["queries"]; 
Смежные вопросы