2013-08-03 106 views
0

嗨,我試圖讓這與jquery ajax,但不知道我是否正確地做... 真的嘗試了一切,基本上不得不看看jquery.ajax傻瓜,但仍然沒有得到它的工作...

function addMix(mix) { 
    alert(mix);//Here I get my array of int's 
    var myArr = JSON.stringify(mix); 
    $.ajax({ 
     type:"POST", 
     dataType: "json", 
     url: "add.php", 
     data: myArr, 
     success: function(data) { 
      alert("Success: " + data); 
      console.log(data); 
     }, 
     error: function(x,y,z){ 
      alert("Error: " + x + ", " + y + ", " + z); 
      console.log(x, y, z); 
     }, 
     complete: function(data){ 
      alert("Complete: " + data); 
      console.log(data); 
     } 
    }); 
} 

php的:

<?php 
header('Content-Type: application/json'); 
include "con.php"; 

$mix = json_decode($_POST); 

foreach($mix as $index => $val){ 
$temp = array(); 

foreach($temp[$index] as $key => $value){ 
     array_push($temp, $value); 
    } 
} 

$sql = "INSERT INTO mg_test(value) 
    VALUES('$temp')"; 

mysql_query($sql); 

echo json_encode($temp); 

mysql_close($con); 

?> 

唯一的事情IM得到回報是, 警報(混合)= 2,1,3,2

成功:空

完成:[對象的對象]

而我什麼也沒有在DB ...

任何人都可以點我在正確的方向?我究竟做錯了什麼?

+0

'$ temp'是一個數組,不是嗎?我不知道你是如何試圖將數組插入數據庫? – Ravish

回答

0

您正在向錯誤地發送數據給ajax調用。 Donot使用JSON.stringify(),而不是像這樣發送請求參數。

type:"POST", 
dataType: "json", 
url: "add.php", 
data: { "requestData": mix }, 
success:function(data){ 
    console.log(data); 
} 

在PHP文件中。得到這個作爲

$mix = json_decode($_POST['requestData']); 
+0

Hm responseText在控制檯顯示「null」...也許錯誤的PHP ? – Conjak

1

你爲什麼要在$.ajax打電話JSON.stringify(mix)

你可以把對象/數組或它在那裏!

這裏有一個固定的JS:

function addMix(mix) { 

    $.ajax({ 
     type:"POST", 
     dataType: "json", 
     url: "add.php", 
     data: { mix: mix }, // <--- this 
     success: function(data) { 
      alert("Success: " + data); 
      console.log(data); 

     ... 
    }); 
} 

而且在PHP,則必須使用

$mix = json_decode($_POST['mix']); 

代替:

$mix = json_decode($_POST); 

而且,我敢肯定此查詢將不起作用:

$sql = "INSERT INTO mg_test(value) VALUES('$temp')"; 

$temp是一個數組 - 你必須建立它的查詢,而不是僅僅把它放在那裏,希望它會奇蹟般地工作。它不會。

+0

好吧,thanx ...這主要是爲了測試...控制檯日誌仍然顯示「null」responseText,將通過PHP ... – Conjak

1

基於$就文檔:

數據選項可以包含以下形式的查詢字符串 鍵1 =值&鍵2 =值,或窗體的對象{key1:'value1', key2:'value2'}。

只需跳過stringify並將其傳遞到數據字段中即可。

+0

試過沒有stringify但只有得到parsererrors,反正,現在它的工作.. thx .. – Conjak

0

不提醒對象alert("Complete: " + data);它(如你所見)返回[Object Object]。那麼什麼說console.log(data);

+0

控制檯顯示沒有錯誤只是很多的對象屬性... – Conjak

0

如果你想看到你的對象,而使用

console.log(data); 

這將是谷歌Chrome瀏覽器的控制檯更好的可讀性。

+0

我使用鉻控制檯調試... responseText顯示空。 .. – Conjak