2012-07-17 75 views
-1

我想通過ajax請求並將每個結果(從for循環)的一些值從JavaScript傳遞到一個PHP文件,以使用PHP數組。PHP的循環和存儲在陣列

queryData={"data":{"data_string":{"data":"medicine","default_field":"Content"}}} 
testArgument=0; 

$.ajax({ 
    url:"test/queryManipulate.php", 
    type: 'POST', 
    datatype: 'json', 
    data: {field : queryData, start : testArgument}, 
    success:function(jsonQuery) 
    { 
     alert(jsonQuery); 
    } 
}); 


<?php 

    $i=0; 
for ($from = 0; $from <= 50; $from+=10) 
{ 
$object=json_decode($_POST["field"]); 
$object->from=$from; 
$object=json_encode($object); 
$ch = curl_init("http://localhost:9200/algotree//_search"); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $object); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$test= curl_exec($ch); 
curl_close ($ch); 
$newArray[$i]= $test; 
$i++; 
echo $newArray[2]; 
} 
?> 

MY for循環不起作用。我是否正確使用它,以及如何將每個結果存儲到php中的數組?

+0

你爲什麼不嘗試使用json_decode?這將把你的JSON自動轉換成一個數組...我在你的例子中看到的是你沒有在請求上傳遞'start'的值,所以也許這就是你的問題 – pollirrata 2012-07-17 02:30:48

+0

Im在數據字段的請求處傳遞起始值..我安娜存儲結果在separatearray .. – user1371896 2012-07-17 02:33:01

+0

什麼是相當於javascript for循環在php?像arrayname [i] = result .. i ++; – user1371896 2012-07-17 02:41:53

回答

0

第一回路應

<?php 
     for($from = $_POST["start"]; $from<50;$from+=10) 
     { 
      // other code 
     } 

注意$從+ 10 = $不從+ 10。

+0

這是一個錯字..那不是問題..問題是將每個值存儲到一個數組.. – user1371896 2012-07-17 04:31:15

+0

那麼你有什麼錯誤?如果你做了一個var_dump($ i),它實際上是在循環中遞增的。需要更多的信息,你已經嘗試了我的想法。 – 2012-07-17 05:02:23

+0

如果我嘗試回顯var_dump($ i),它顯示錯誤(!)警告:嘗試在第10行的test \ queryManipulate.php中分配非對象的屬性,並將int 0到4打印五次。 – user1371896 2012-07-17 05:22:23

0

在JavaScript中,轉換爲JSON字符串之前,我們必須使用數組格式的數據和對象等,

data_string = new Object(); 
data = new Array(); 

data_string[data] = "medicine"; 
data_string[default_field] = "Content"; 

data.push(data_string); 

接着編碼的數據JSON,將像

{"data":{"data_string":{"data":"medicine","default_field":"Content"}}} 

結果再通到php文件通過ajax然後解碼json使用

json_encode(data); in php

然後做進一步的處理..