首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在jquery中使用onchange和serializeArray?

如何在jquery中使用onchange和serializeArray?
EN

Stack Overflow用户
提问于 2014-03-26 21:36:59
回答 2查看 572关注 0票数 0

我已经创建了一个具有3个选择部件的表单,并且我尝试使用serializeArray创建一个数组。我想使用jquery ajax将这个数组发送到我的php文件中。但我不想使用提交。当我只有一个select标记时,我使用以下代码

代码语言:javascript
运行
复制
<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())。这是我的新表格

代码语言:javascript
运行
复制
<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代码来回显我的数组。我觉得应该是这样的

代码语言:javascript
运行
复制
<?php
$myarr = array();
$myarr = $_GET["str"]//or $_POST['str']
echo $myarr[0];    
?>

非常感谢!顺便说一句,英语不是我的母语,请原谅打字错误。

EN

回答 2

Stack Overflow用户

发布于 2014-03-26 22:04:35

使用

代码语言:javascript
运行
复制
var arrayForm = $('form select').serializeArray();

然后

代码语言:javascript
运行
复制
var paramForm = $.param(arrayForm);

http://jsfiddle.net/LBKeQ/一样

然后你就可以使用

代码语言:javascript
运行
复制
$.ajax({
    type: 'POST',
    async:true,
    cache: false,
    data: paramForm,
    success:function (data, textStatus) {
        console.log(data);
    },
    url:"myphpfile.php"
});
票数 0
EN

Stack Overflow用户

发布于 2014-03-26 22:05:02

好的,如果我没弄错你的问题,这就是你想要做的:

动态添加的字段上的挂钩事件

代码语言:javascript
运行
复制
$("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几乎不需要任何操作,如下所示:

代码语言:javascript
运行
复制
$("form").ajaxForm({ 
        dataType: "json", 
        success: function(data) { sendToServer(data); }
    }); 

使用后端中的数据的

该插件还允许您在服务器上使用您提供的脚本(值为“$_POST”)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22662700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档