我创建了一个有3个选择部分的表单,我试图创建一个带有serializeArray的数组。我想使用jquery ajax张贴这个数组到我的php文件。但我不想使用submit。当我只有一个选择标签时,我使用以下代码
<form>
<select onchange="myfunction(str)">
<option value="">num</option>
<option value="123">123</option>
<option value="133">133</option>
</select>
</form>
在我的ajax代码,我使用open("GET","myphpfile.php?q="+str,true)
和send()
没有jquery。但现在我有3选择标签,我不知道如何太使用serializeArray()
(或serialize()
)与jquery。这是我的新表单
<form>
<select name="num1">
<option value="">num1</option>
<option value="12">12</option>
<option value="13">13</option>
</select>
<select name="num2">
<option value="">num2</option>
<option value="123">123</option>
<option value="133">133</option>
</select>
<select name="num3">
<option value="">num3</option>
<option value="12345">12345</option>
<option value="12346">12346</option>
</select>
</form>
我问题的第二部分是如何编写PHP代码来回显我的数组。我觉得应该是这样的
<?php
$myarr = array();
$myarr = $_GET["str"]//or $_POST['str']
echo $myarr[0];
?>
非常感谢!顺便说一下,英语不是我的母语;请原谅打字错误。
好的,如果我没看错的话,你应该这样做:
在动态添加的字段上挂钩事件
$("form").on("change", "select", function() {
var name = $(this).prop("name");
console.log("Select-Name: " + name);
// if you use the plugin I mentioned further down and you'll need to serialize
// all fields already here, you can use the plugin's .fieldSerialize method
})
在这里获得详细信息:https://api.jquery.com/on/
<<p> 序列化形式/strong>这里最简单的事情是使用这个jQuery表单插件:http://malsup.com/jquery/form/
创建一个json数据集,几乎不需要做任何努力,就像这样:
$("form").ajaxForm({
dataType: "json",
success: function(data) { sendToServer(data); }
});
处理后端数据
该插件还允许您使用您提供的脚本在服务器上工作($_POST["value"])
use
var arrayForm = $('form select').serializeArray();
然后
var paramForm = $.param(arrayForm);
像http://jsfiddle.net/LBKeQ/则可以使用
$.ajax({
type: 'POST',
async:true,
cache: false,
data: paramForm,
success:function (data, textStatus) {
console.log(data);
},
url:"myphpfile.php"
});