如何在jquery中使用onchange和serializeArray


How to use onchange with serializeArray in jquery?

我创建了一个有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"
});