2013-02-05 220 views
0

我想通過一個數組 發送數據該發射器代碼發送數據:通過陣列

<script type="text/javascript"> 
    $(function() { 
     $(".cat_button").click(function() { 
       var element = $(this); 
       var test = $("#cou").val(); 
       var test2 = $("#category2").val(); 
       var data = [ 
        {data:test}, 
        {data:test2} 
       ];  

       if(test=='' || test2=='.....') 
       { 
        alert("fill data"); 
       } 
       else 
       { 
        $("#flash").show(); 
        $("#flash").fadeIn(400).html('<img src="http://tiggin.com/ajax-loader.gif" align="absmiddle">&nbsp;<span class="loading">Loading...</span>'); 


        $.ajax({ 
         type: "POST", 
         url: "insert2.php", 
         data: {data: data}, 
         cache: false, 
         success: function(response){ 
          console.log(response); 
         } 
        }); 
       } 

       return false; 
     }); 
    }); 
</script> 

這碼接收:

print_r($_POST['data']); // dumps an array 

$course = $_POST['data'][0]['data']; 
$category = $_POST['data'][1]['data']; 
$insert_new_cou = mysql_query("insert into course (name,cat_id) values ('$course','$category')") or die($insert_new_cou."<br/><br/>".mysql_error()); 

但是告訴我下面的錯誤:

Cannot use string offset as an array

我認爲使用Jtgson的解決方案,但我不知道如何使用它

+0

請妥善縮進代碼。它很重要。沒有人希望讀取不帶有縮進的代碼。 – meagar

+0

您不再使用谷歌翻譯! – Dharman

+0

'print_r($ _ POST ['data']);'輸出?另外,什麼是Jtgson? –

回答

0

它可以通過JSON編碼您的對象數組來完成。在$.ajax電話:

... 
url: "insert2.php", 
data: {data: JSON.stringify(data)}, 
... 

在PHP端使用json_decode()獲取對象從JSON字符串數組:

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

$course = $data[0]->data; 
$category = $data[1]->data; 
+0

MrCode:出現這個錯誤:不能使用類型爲stdClass的對象作爲數組 –

+0

啊是的,你需要在PHP中使用' - >'對象語法 - 請參閱我的編輯。 – MrCode

+0

非常感謝Mrcode .... 這是解決方案 $ data = $ _ POST ['data']; $ data2 = json_decode($ data,true); $ course = $ data2 [0] ['data']; $ category = $ data2 [1] ['data']; –