簡體   English   中英

JSON不將數組數據傳遞給PHP

[英]JSON not passing array data to PHP

我正在嘗試將我的代碼更改為在上一個問題的推薦下使用json來簡化事情...

在客戶端:

<script type="text/javascript" src="../js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="../js/jquery.tablednd_0_5.js"></script>
<script type="text/javascript" src="../js/jquery.json-2.2.js"></script>

<script type="text/javascript">
    $(document).ready(function() {
        $('#table').tableDnD();
    });
    function sendData() {
        data = $('#table').tableDnDSerialize();
        alert(data); // shows expected data
        document.dataform.data.value = $.toJson(data);
        document.data.submit();
    }
</script>

<form action="$php_page_name" method="post" name="dataform" onSubmit="sendData()">
    <input type="hidden" name="data" />
    <input type="submit" value="Submit" />
</form>

js alert輸出預期的數組,我認為到此為止它會轉換為字符串。 但是當我提交form.data時,我的php:

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

僅返回:

數組([data] =>)

有什么想法為什么沒有通過?

干杯,安迪

您需要等待函數的返回:

onSubmit="return sendData()"

否則,表單將立即提交,並且不會等到數據更改后再提交。

函數內部替換此

document.data.submit();

有了這個:

return true;

此外:假設您將其用作jquery.json-2.2.js:
http://code.google.com/p/jquery-json/downloads/detail?name=jquery.json-2.2.js&can=2&q=
方法名稱是
$.toJSON代替$.toJson

盡量不要命名相同的元素。 您的表單名為“數據”,隱藏的輸入也是如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM