2011-12-15 63 views
0

我有HTML,看起來像這樣:JQuery的,序列化的HTML陣列

<form id="kinodForm"> 
    <input type="text" name="element[5]" value="krispy kreme" /> 
    <input type="text" name="element[6]" value="in" /> 
    <input type="text" name="element[7]" value="n" /> 
    <input type="text" name="element[8]" value="out" /> 
    <input type="text" name="element[9]" value="drive" /> 
</form> 

而且一些JavaScript看起來像這樣:

$(document).ready(function(){ 
    var kinod = $('#kinodForm').serializeArray(); 
    $.post('test.php', {form: kinod}, function(data){ 
     console.log(data); 
    }); 
}); 

的PHP腳本Ajax請求勢必很簡單:

<?php print_r($_POST); ?> 

將發佈請求的結果記錄到控制檯。它的輸出是這樣的:

[form] => Array ( 
    [0] => Array ([name] => element[5] [value] => 'krispy kreme') 
    [1] => Array ([name] => element[6] [value] => 'in') 
    [2] => Array ([name] => element[7] [value] => 'n') 
    [3] => Array ([name] => element[8] [value] => 'out') 
    [4] => Array ([name] => element[9] [value] => 'drive') 
) 

這個輸出是不完美的,因爲我希望能夠做到這一點在PHP腳本上面沒有正則表達式:

<?php 
    $form = $_POST['form']; 
    foreach($form as $id => $value){ 
     echo 'element['.$id.'] -> '.$value.'<br>'; 
    } 
?> 

此代碼顯然會使用值爲{0,1,2,3,4}$id,我希望它們保持與HTML表單中定義的相同。我覺得我不應該解析的HTML數組ID。建議?

回答

1

試試這個:

$.post('test.php', kinod, function(data){ 
    console.log(data); 
}); 
+0

乾杯!有時我想知道我的大腦在哪裏流淌。 – 2011-12-15 14:05:46

0

爲什麼不使用.serialize()然後通過「&」爆炸讓你的表單數據到一個數組,然後可以循環了嗎?