【问题标题】:How to get the values of dynamically added rows into database?如何将动态添加的行的值获取到数据库中?
【发布时间】:2012-02-07 08:08:56
【问题描述】:

我有一个表格,其中包含可以通过单击添加按钮动态添加行的部分。像往常一样,我来这里的原因是在将添加的行中的这些值添加到数据库中时遇到了麻烦。我的意思是,动态添加的行上的值不会被保存到数据库中,只会添加第一行的值。

这是脚本:

编辑:

<script language="Javascript">
var i=1;
function addRowToTable()
{


 i++;
  m.r.value = i;
  var tbl = document.getElementById('table');
  var lastRow = tbl.rows.length;
  var iteration = lastRow;
  var row = tbl.insertRow(lastRow);

  var cellLeft = row.insertCell(0);
  var textNode = document.createTextNode(iteration);
  cellLeft.appendChild(textNode);

  var cellRightSel1 = row.insertCell(1);
  var sel = document.createElement('select');
  sel.name = 'name' + iteration;
  sel.setAttribute("onchange", "choosec(this);");    
  var item = new Option("","");
  sel.options[sel.length] = item;
    <?
    while($data = mysql_fetch_array($result)){                                    
    ?>
  var item = new Option("<?=$data["Name"];?>","<?=$data["ID"];?>");
  sel.options[sel.length] = item;
  <? } ?>
  cellRightSel1.appendChild(sel);

  var cellRightSel2 = row.insertCell(2);
  var sel = document.createElement('select');
  sel.name = 'class' + iteration;
  sel.setAttribute("onchange", "choosepoint(this);");    
  var item = new Option ("","");
  sel.options[sel.length] = item;
    <?
    while($data = mysql_fetch_array($result_sub)){                                    
    ?>
  var item = new Option("<?=$data["Class"];?>","<?=$data["ID"];?>");
  sel.options[sel.length] = item;
  <? } ?>
  cellRightSel2.appendChild(sel);

  var cellRight = row.insertCell(3);
  var div = document.createElement('div');
  div.id = 'point' + iteration;
  cellRight.appendChild(div);
}
    </script>

<form id="m" name="m" method="POST" action="submit.php">
<input type="hidden" name="menu_id" value="<?=$menu_id;?>">
<input type="hidden" name="r" id="r">
<table align="center" class="table">
    <tr>
    <tr>
        <td class="tablesubtitle">Adjustment</td>
        <td class="tablesubtitle"><input type="text" name="adjustment" size="2"></td>
        </td>
    </tr>
    <tr>
        <td class="tablesubtitle">Component</td>
        <td class="tablesubtitle">
        <table id="table">
    <tr>
        <td>No</td>
        <td>Name</td>
        <td>Class</td>
        <td>Point</td>
        <td>Action</td>
    </tr>
    <tr>
            <td>1</td>
        <td><select name="name">
            <option value="#">&nbsp;</option>
            <?php
                    opendb();
                $query = "SELECT * FROM student";
                $result = mysql_query($query);
                while($data = mysql_fetch_array($result)){
                    $ID = $data['ID'];
                    $Name = $data['Name'];
                    echo "<option value='$ID'>$Name</option>";
                }
            ?>
             </select>
        </td>
        <td><select name='class' onchange="choosepoint(this);">
            <option value="#">&nbsp;</option>
            <?php
                    opendb();
                $query = "SELECT * FROM student2";
                $result = mysql_query($query);
                while($data = mysql_fetch_array($result)){
                        $ID1 = $data['ID'];
                    $class = $data['Class'];
                    echo "<option value='$ID'>$class</option>";
                }
            ?>
            </select>
        </td>
        <td>
                <div id="point" name="point"></div>
            </td>
            <td><input type="button" value=" + " onClick="addRowToTable();"> | <input type="button" value=" - " onClick="removeRowFromTable();"></td>
    </tr>
</table>    
        </td>
        <tr>
        <td></td>
        <td align="center"><input type="submit" value="Submit"></td>
        </tr>
    </tr>
</table>
</form>

提交.php

<?php
include ("c/config.php");
include ("c/db.php");

opendb();
$query1 = "select * from student where ID='$name'";
$result1 = querydb($query1);
$data = mysql_fetch_array($result1);
    $adjustment = $data['adjustment'];

$num = $_POST['r'];
//echo $num;
for($i=0; $i<=$num; $i++){
if(isset($_REQUEST['name$i'])){
    $name = $_REQUEST['name$i'];
}
if(isset($_REQUEST['class$i'])){
    $class = $_REQUEST['class$i'];
}
if(isset($_REQUEST['point$i'])){
    $point = $_REQUEST['point$i'];
}

$query2 = "INSERT INTO student3
            VALUES('$adjustment','$name','$class','$point')";
$result2 = querydb($query2);
}
closedb();
?>

【问题讨论】:

  • 您的代码中没有插入或更新语句。这里的代码也太多了。减少代码量,只发布给你带来麻烦的部分。
  • 呃,我忘了,对不起。

标签: php javascript html row add


【解决方案1】:

我会使用 jquery 并给行中的每个表单元素一个唯一的 id 然后调用

addRowToTable('234') //or whatever the id is

然后在 addRowToTable(id) 函数中

$('form_element'+id).val();

将此发送到 jquery $.post

【讨论】:

  • 感谢 Michael 的建议,但我对 Jquery 不太了解,虽然它看起来更容易,但我会学习它。无论如何,我已经找到了答案。谢谢。
【解决方案2】:

我发现了问题。 这是我最新的代码:

var i=0;
function addRowToTable()
{
 i++;
  m.r.value = i;
  var tbl = document.getElementById('table');
  var lastRow = tbl.rows.length;
  var iteration = lastRow - 1;
  var row = tbl.insertRow(lastRow);

  var cellLeft = row.insertCell(0);
  var textNode = document.createTextNode(iteration);
  cellLeft.appendChild(textNode);

  var cellRightSel1 = row.insertCell(1);
  var sel = document.createElement('select');
  sel.name = 'name' + iteration;
  sel.setAttribute("onchange", "choosec(this);");    
  var item = new Option("","");
  sel.options[sel.length] = item;
    <?
    while($data = mysql_fetch_array($result)){                                    
    ?>
  var item = new Option("<?=$data["Name"];?>","<?=$data["ID"];?>");
  sel.options[sel.length] = item;
  <? } ?>
  cellRightSel1.appendChild(sel);

  var cellRightSel2 = row.insertCell(2);
  var sel = document.createElement('select');
  sel.name = 'class' + iteration;
  sel.setAttribute("onchange", "choosepoint(this);");    
  var item = new Option ("","");
  sel.options[sel.length] = item;
    <?
    while($data = mysql_fetch_array($result_sub)){                                    
    ?>
  var item = new Option("<?=$data["Class"];?>","<?=$data["ID"];?>");
  sel.options[sel.length] = item;
  <? } ?>
  cellRightSel2.appendChild(sel);

  var cellRight = row.insertCell(3);
  var div = document.createElement('div');
  div.id = 'point' + iteration;
  cellRight.appendChild(div);
}
    </script>

<form id="m" name="m" method="POST" action="submit.php">
<input type="hidden" name="menu_id" value="<?=$menu_id;?>">
<input type="hidden" name="r" id="r">
<table align="center" class="table">
    <tr>
    <tr>
        <td class="tablesubtitle">Adjustment</td>
        <td class="tablesubtitle"><input type="text" name="adjustment" size="2"></td>
        </td>
    </tr>
    <tr>
        <td class="tablesubtitle">Component</td>
        <td class="tablesubtitle">
        <table id="table">
    <tr>
        <td>No</td>
        <td>Name</td>
        <td>Class</td>
        <td>Point</td>
        <td>Action</td>
    </tr>
    <tr>
            <td>1</td>
        <td><select name="name">
            <option value="#">&nbsp;</option>
            <?php
                    opendb();
                $query = "SELECT * FROM student";
                $result = mysql_query($query);
                while($data = mysql_fetch_array($result)){
                    $ID = $data['ID'];
                    $Name = $data['Name'];
                    echo "<option value='$ID'>$Name</option>";
                }
            ?>
             </select>
        </td>
        <td><select name='class' onchange="choosepoint(this);">
            <option value="#">&nbsp;</option>
            <?php
                    opendb();
                $query = "SELECT * FROM student2";
                $result = mysql_query($query);
                while($data = mysql_fetch_array($result)){
                        $ID1 = $data['ID'];
                    $class = $data['Class'];
                    echo "<option value='$ID'>$class</option>";
                }
            ?>
            </select>
        </td>
        <td>
                <div id="point" name="point"></div>
            </td>
            <td><input type="button" value=" + " onClick="addRowToTable();"> | <input type="button" value=" - " onClick="removeRowFromTable();"></td>
    </tr>
</table>    
        </td>
        <tr>
        <td></td>
        <td align="center"><input type="submit" value="Submit"></td>
        </tr>
    </tr>
</table>
</form>

<?php
include ("c/config.php");
include ("c/db.php");

opendb();
$query1 = "select * from student where ID='$name'";
$result1 = querydb($query1);
$data = mysql_fetch_array($result1);
    $adjustment = $data['adjustment'];

$num = $_POST['r'];
//echo $num;
for($i=0;$i<=$num;$i++){
if(isset($_REQUEST['name$i'])){$name = $_REQUEST['name$i'];}
if(isset($_REQUEST['class$i'])){$class = $_REQUEST['class$i'];}
if(isset($_REQUEST['point$i'])){$point = $_REQUEST['point$i'];}

$query2 = "INSERT INTO student3
            VALUES('$adjustment','$name','$class','$point')";
$result2 = querydb($query2);
}
closedb();
?>

【讨论】:

    猜你喜欢
    • 2013-09-14
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多