我已经创建了一个具有3个选择部件的表单,并且我尝试使用serializeArray创建一个数组。我想使用jquery ajax将这个数组发送到我的php文件中。但我不想使用提交。当我只有一个select标记时,我使用以下代码
<form>
<select onchange="myfunction(str)">
<option value="">num</option>
<option value="123">123</option>
<option value="133">133</option>
</select>
</form>在我的ajax代码中,我使用了不带jquery的open("GET","myphpfile.php?q="+str,true)和send()。但是现在我有了3个select标签,我不知道如何在jquery中使用serializeArray()(或serialize())。这是我的新表格
<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];
?>非常感谢!顺便说一句,英语不是我的母语,请原谅打字错误。
发布于 2014-03-26 22:04:35
使用
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"
});发布于 2014-03-26 22:05:02
好的,如果我没弄错你的问题,这就是你想要做的:
动态添加的字段上的挂钩事件
$("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/
序列化forms
这里最简单的事情就是使用这个jQuery表单插件:http://malsup.com/jquery/form/
创建一个json-dataset几乎不需要任何操作,如下所示:
$("form").ajaxForm({
dataType: "json",
success: function(data) { sendToServer(data); }
}); 使用后端中的数据的
该插件还允许您在服务器上使用您提供的脚本(值为“$_POST”)。
https://stackoverflow.com/questions/22662700
复制相似问题