获取可变大小的表单到javascript和PHP(AJAX)

获取可变大小的表单到javascript和PHP(AJAX),第1张

概述背景 – 我有一个包含一堆按钮的网页(想想POS系统).我希望用户能够编辑按钮的名称(用于按特定顺序放置)和按钮的文本,其中包含2个部分,即项目和成本.目前我通过将数据从 PHP页面(编辑完成的位置)传递到另一个PHP页面(我将其写回数据库)进行工作,但我想使用更多的AJAX方法并将其传递给js保存编辑时更新的功能.由于按钮的数量非常多,我不知道要读入脚本的按钮的确切数量.目前我有类似的东西…… 背景 – 我有一个包含一堆按钮的网页(想想POS系统).我希望用户能够编辑按钮的名称(用于按特定顺序放置)和按钮的文本,其中包含2个部分,即项目和成本.目前我通过将数据从 PHP页面(编辑完成的位置)传递到另一个PHP页面(我将其写回数据库)进行工作,但我想使用更多的AJAX方法并将其传递给Js保存编辑时更新的功能.由于按钮的数量非常多,我不知道要读入脚本的按钮的确切数量.目前我有类似的东西……

echo "<td><input type='text' name='btn[]' size='5' value='" . $row['button'] . "'/></td>";echo "<td><input type='text' name='itm[]' size='5' value='" . $row['item'] . "'/></td>";echo "<td><input type='text' name='prc[]' size='5' value='" . $row['price'] . "'/></td>";

这是发送到PHP页面,我有…

$buttonArray = $_POST['btn'];$itemArray = $_POST['itm'];$priceArray = $_POST['prc'];$numberofItems = count($itemArray);for ($i=0; $i<$numberofItems; $i++){$sql = "UPDATE concessions SET button = '".$buttonArray[$i]."',item = '".$itemArray[$i]."',price = '".$priceArray[$i]."'";MysqL_query($sql);}

我想在Js中做类似的事情,查看document.form.elements,但无法弄清楚如何发送(如和数组)我可以使用for循环来循环.欢迎任何建议.

解决方法 有一种非常简单的方法:使用这个简单的JavaScript函数(确保你加载了最近的jquery)

$.fn.serializeObject = function(){    var o = {};    var a = this.serializeArray();    $.each(a,function() {        if (o[this.name] !== undefined) {            if (!o[this.name].push) {                o[this.name] = [o[this.name]];            }            o[this.name].push(this.value || '');        } else {            o[this.name] = this.value || '';        }    });    return o;};

此函数将按正确的顺序序列化您的表单元素,并将输出一个JavaScript对象.
你需要像AJAX一样使用它来解析你的值:

var objects = $("#ID_OF_YOUR_FORM").serializeObject();$.AJAX({   url: "your_AJAX_file_location.PHP",type: "POST",data: ({       objects:objects,otherdata:otherdata     }),success: function(msg){        /* do whatever here */    } });

AJAX将自己做魔法并在PHP数组中自动转换该对象并将其发布到PHP …试试这个:

echo "<pre>".$_POST['objects']."</pre>";

PHP数组应如下所示:

{    btn= array(               "your btn1 info","your btn2 info","your btn3 info"               );    itm= array(               "your itm1 info","your itm2 info","your itm3 info"               );    prc= array(               "your prc1 info","your prc2 info","your prc3 info"               );}

从这种类型的数组中,很容易在PHP中 *** 作以更新数据库

总结

以上是内存溢出为你收集整理的获取可变大小的表单到javascript和PHP(AJAX)全部内容,希望文章能够帮你解决获取可变大小的表单到javascript和PHP(AJAX)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1054596.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存