当前位置: 首页 > 面试题库 >

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

戎劲
2023-03-14
问题内容

背景-
我有一个包含一堆按钮的网页(想想POS系统)。我希望用户能够编辑按钮的名称(用于按特定顺序放置它们)和按钮的文本,其中包含项目和成本两部分。目前,我可以通过将数据从一个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,但无法弄清楚如何以某种形式发送(例如and数组),我可以使用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中操作以更新数据库



 类似资料:
  • 问题内容: 我有一个从MySQL数据库填充的可变大小(长度)的表单。有4个字段构成了用于创建按钮的信息(id,button#,名称和价格)。提交表单后,我想将所有值保存到MySQl db并用成功消息更新页面底部的div。对于其他所有页面,我都使用类似… PHP文件保存数据并为div生成消息。并写信给div 这对于我所有其他页面都很好,但是由于我不知道会有多少字段,因此我无法对xmlhttp.ope

  • 本文向大家介绍php获取远程文件的内容和大小,包括了php获取远程文件的内容和大小的使用技巧和注意事项,需要的朋友参考一下 本文实例总结了php获取远程文件的内容和大小的方法。分享给大家供大家参考。具体如下: 1、获取远程文件内容的方法 2、获取远程文件大小的方法 以上就是php获取远程文件的内容和大小函数代码,希望对大家的学习有所帮助。

  • 本文向大家介绍php获取远程文件大小,包括了php获取远程文件大小的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php获取远程文件大小的方法,分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的php程序设计有所帮助,大家能够喜欢小便的文章,大家共同进步。

  • 我想获取所选框的值,并将其保存在PHP变量中。我想保存并回显变量。请帮忙

  • 问题内容: 首先,我认为我必须将JavaScript转换为PHP,但是后来我发现,由于服务器和客户端的执行,我不能。所以现在我只想发送一个变量 到一个PHP变量 假设我单击一个按钮,就会执行JavaScript中的该函数。 现在,我不知道如何将phpvariable分配给JavaScript,以便使用phpvariable在数据库中查找内容。我知道我可以将其添加到URL或其他内容中并刷新页面,但是