【发布时间】:2014-05-09 12:39:28
【问题描述】:
我正在创建提交到数据库的第一个表单,需要一些帮助。我的大部分工作都在工作,但我卡住的地方是添加一个新行。我有一个 javascript 函数,可以让我添加任意数量的行,但它有 2 个问题。首先是使用 Javascript,当我点击提交时,php 表单似乎没有“看到”添加的新字段。第二个问题是我正在设置一个键:值关系,我不知道如何在 javascript 中设置。
问题是,正如您在代码中看到的,我正在设置一个包含 2 个字段的表格行,一个是键,另一个是值,但是当您不知道会发生什么时,如何声明在那里输入?
<script type="application/javascript">
function addRow(S_ID, S_NAME){
var addRow ='<tr><td><input type="text" name="" value=""></td><td><input type="text" name="" value=""></td></tr>';
$("#applyTable").append(addRow);
}
</script>
<table width=400>
<tr><th>Setting</th><th>Value</th></tr>
</table>
<form action="functions.php?do=save" method="POST" id="saveSettings">
<table class="myTable" border="1px" style="width:400px;" >
<tbody id="applyTable">
<?
include 'db.php';
foreach($db->query('SELECT * from settings') as $row) {
print_r("<tr><td>" . $row[1] . "</td><td><input type=\"textbox\" name=\"
" . $row[1] . "\" value=\"" . $row[2] . "\"></td></tr>");
}
?>
</tbody>
</table>
<input type="submit">
<input type="button" value="Add" border="1px" onclick="addRow()" />
</form>
这是它被提交到的页面:
<?
if ($_REQUEST['do'] == 'save'){
include 'db.php';
foreach ($_POST as $key => $value)
{
$sql="UPDATE settings SET value = \"$value\" WHERE name = \"$key\"";
$db->query("$sql");
echo "$sql<br>";
};
};
?>
任何帮助将不胜感激。
【问题讨论】:
-
您为变量和函数提供了相同的名称
addRow,该函数确实包含两个未传递的参数。 -
您的 PHP 不读取新输入的原因是因为您没有给它们命名。您可以为此使用HTML input array。
-
谢谢 Cheezburger,我想我可以使用输入数组的技巧来设置“类型”(文本框、文本区域、真/假)和“状态”(动作/非活动) .
标签: javascript php mysql forms