我正在创建我的第一个提交到数据库的表单,需要一些帮助。我有大部分工作,但我被困在哪里是添加一个新行。我有一个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>";
};
};
?>
任何帮助都将不胜感激。
答案 0 :(得分:0)
首先,似乎键和值没有设置为输入元素的名称,我想它应该看起来像
function addRow(S_ID, S_NAME){
var addRow ='<tr><td><input type="text" name="'+s_ID+'" value=""></td><td><input type="text" name="'+S_NAME+'" value=""></td></tr>';
$("#applyTable").append(addRow);
}
并且没有为点击按钮设置参数,如果它是:
<input type="button" value="Add" border="1px" onclick="addRow('mykey', 'myvalue')" />
表单不会将任何字段发布到操作脚本,缺少输入元素的NAME 如果所有的键和名称都相同,只需将mykey和myvalue替换为mykey []和myvalue []以使它们成为数组