我有一个从 MySQL 数据库填充的可变大小(长度)的表单。有 4 个字段构成用于创建按钮的信息(id、button#、name 和 price)。提交表单后,我想将所有值保存到 MySQl db 并使用成功消息更新页面底部的 div。目前我有这个表格。
<?php include("./db/db_connect.php"); ?>
<form method="POST" action="fixcon.php">
<?php
$sql = "SELECT * FROM concessions ORDER BY button ASC ";
$result = mysql_query($sql);
echo "<table border='1' id='table'>
<tr>
<td align='center'>Button #</td>
<td align='center'>Item</td>
<td align='center'>Price</td>
<td align='center'>Button</td>
</tr>";
while($row = mysql_fetch_array($result)) {
echo "<tr>";
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>";
echo "<td><input type='button' class=myButton name='button01' value='".$row['item'].' $'.$row['price']."'></td>";
echo "<input type='hidden' name='id[]' value='".$row['id']."'/>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
它发送到的任何 PHP
<?php include("./db/db_connect.php"); ?>
<?php
$buttonArray = $_POST['btn'];
$itemArray = $_POST['itm'];
$priceArray = $_POST['prc'];
$idArray = $_POST['id'];
$numberofItems = count($itemArray);
for ($i=0; $i<$numberofItems; $i++) {
$sql = "UPDATE concessions SET button = '".$buttonArray[$i]."', item = '".$itemArray[$i]."', price = '".$priceArray[$i]."' WHERE id = '".$idArray[$i]."'";
mysql_query($sql);
}
echo "<b>User updated</b>";
mysql_close($con);
?>
对于我所有其他页面,我将表单发送到 JS 并使用类似...
xmlhttp.open("GET","myfile.php?a="+val1+"&b="+val2+"&c="+val3+"&d="+val4,true);
xmlhttp.send();
PHP 文件保存数据并为 div 生成消息。要写入 div...
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
这适用于我的所有其他页面,但由于我不知道会有多少字段,我无法对 xmlhttp.open 语句进行硬编码。不熟悉 jQuery(现在学习)或 ajax(只知道我做 jQuery 的一点点)我不知道如何执行此操作。我知道我需要序列化数据并已完成并将其发送到 javascript 使用
$.each($('#yourform').serializeArray(), function() { console.log(" <" +this.name+ '>' + this.value + "</" + this.name + "> " ); });
但我不知道如何将其发送到 PHP 文件以将其写入 MySQL 数据库,然后发送回以更新页面上的 div。请给出完整的代码,因为到目前为止我在尝试实现片段和建议时遇到了很多问题。