从值设置表单名称

时间:2014-03-30 04:13:09

标签: javascript php mysql forms

我正在创建我的第一个提交到数据库的表单,需要一些帮助。我有大部分工作,但我被困在哪里是添加一个新行。我有一个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>";
    };

};
?>

任何帮助都将不胜感激。

1 个答案:

答案 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 []以使它们成为数组