动态表单提交到数据库

时间:2013-06-07 04:56:44

标签: php javascript json forms

我有一个HTML表单,其中包含一些静态字段和一些使用javascript动态添加的字段。看起来有点像这样

<html>
<script type="text/javascript">

        window.onload = function()
        {
            var select = document.getElementById("select");
            var texts = document.getElementById("texts");
            select.onchange = function()
            {
                var val = select.options[select.selectedIndex].value;
                texts.innerHTML = "";
                for(i=0; i < val; i++)
                {
                    //texts.innerHTML += '<div><input type="text" name="t_' + i + '" value="select_' + i + '" /></div>';
                    texts.innerHTML += i + '<div><input type="text" name="t_' + i + '" /></div>';
                }
            }
        }

    </script>
<body>
    <form method="POST" action="connection.php">
Question:<br>
<textarea name="question" cols="35" rows="5"></textarea><br>
<select id="select" size="1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
<div id="texts"></div>
<input type="submit" name="Submit" value="Submit" >
</form>
</body>
</html> 

当用户点击它时会添加一个文本框字段。如何将数据存储到数据库中。通常建议我了解用于执行此操作的资源。提前感谢

3 个答案:

答案 0 :(得分:2)

美好的一天Shashak

为了将表单的数据提交到数据库中,无论表单的javascript如何,在您的情况下都应该使用POST方法将POST方法传递给脚本'connection.php'。

此脚本应包含一种连接到数据库的方法,然后是验证数据的逻辑,最后验证是否成功,将数据插入数据库的数据库查询。


对于PHP或任何其他服务器端脚本语言和数据库,您的理解程度如何? - 如果我知道你所知道的,我将能够给你更多的信息。

答案 1 :(得分:0)

PHP

它将发布如下数据: 假设您选择选项2。

$inputs = $_REQUEST['t']; // change the name like this name[]
$textarea = $_REQUEST['textarea'];
$selectbox = $_REQUEST['select']; // you should define the name of the select box as i used 'select'

插入mysql

$conn = mysql_connect('localhost', 'db user', 'db password');
mysql_select_db('database name');

for($i=0; i<count($inputs); $i++) {
    $sql = "insert into <table name> (textarea, inputs) values ($inputs[$i], $textarea)";
    mysql_query($sql);
}

它将根据您选择的输入文本框存储每一行​​。

注意:根据您的要求修改查询。

答案 2 :(得分:0)

我认为不是给文本框提供名称格式t_1,t_2,而是可以将其作为数组提供,如下所示

    <html>
   <script type="text/javascript">

    window.onload = function()
    {
        var select = document.getElementById("select");
        var texts = document.getElementById("texts");
        select.onchange = function()
        {
            var val = select.options[select.selectedIndex].value;
            texts.innerHTML = "";
            for(i=0; i < val; i++)
            {
                //texts.innerHTML += '<div><input type="text" name="t_' + i + '" value="select_' + i + '" /></div>';
                texts.innerHTML += i + '<div><input type="text" name="txt_name[]" /></div>';
            }
        }
    }

</script>
 <body>
 <form method="POST" action="connection.php">
  Question:<br>
     <textarea name="question" cols="35" rows="5"></textarea><br>
    <select id="select" size="1">
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
 <option value="5">5</option>
 <option value="6">6</option>
 <option value="7">7</option>
 <option value="8">8</option>
 <option value="9">9</option>
 </select>
<div id="texts"></div>
<input type="submit" name="Submit" value="Submit" >
 </form>
 </body>
 </html>