将可变长度数组通过AJAX传递给PHP

时间:2011-04-04 12:46:12

标签: php jquery ajax arrays

我试图通过这个表格/

是一个大问题
<form id="form">
  <select id="<?php echo $answer['aid']; ?>" name="importance[<?php echo $answer['aid']; ?>]">                      
                                  <option value="0">NO</option>
                                  <option value="25">Unlikely</option>
                                  <option value="50" selected="selected">Neutral</option>
                                  <option value="75">Perhaps</option>
                                  <option value="100">YES</option>
                       </select>
<input 

type="submit" id="submit" value="Next"/>
</form>

我如何使用Jquery / AJax发送此表单。我不想更新整个页面,所以到目前为止使用这个AJAX。

$('#form').submit(function() {
    alert('Submit button clicked with ServiceID =' + serviceID);  
    var impArray =  $('#form').serialize()
    JSONstring = JSON.stringify(impArray)
     alert(JSONstring);
     $.ajax({
           type: "POST",
           url: "update_KB.php",
           data: JSONstring, 
           success: function(msg){
             alert( "Data Saved: " + JSONstring );
           }
    });

它为我提供了一个字符串,在警告

中显示如下字符串

“重要性%5B101%5D = 50&安培;重要性%5B100%5D = 50&安培;重要性%5B99%5D = 50&安培;重要性%5B98%5D = 50”

我如何删除%5B和%5D或解码它以便我得到方括号并将其转换为一个数组以提交给SQL字符串?

2 个答案:

答案 0 :(得分:2)

您可以使用json_decode()在php中对其进行解码 虽然我很好奇你为什么要在发送整个表单并且已经将它们作为数组发送时序列化它?

答案 1 :(得分:0)

您无需更改%5D或%5B,您可以从发送数据的GET / POST获取update_KB.php中的参数。如果您遇到任何问题请写下面的代码 -

 print_r ($_POST); OR print_r ($_GET);

在你的update_KB.php上。然后你可以决定做什么。