提交具有相同名称的多个输入的表单

时间:2014-06-03 10:14:27

标签: php html forms

我希望能够发送多个具有相同名称的下拉值,以将它们插入数据库

有人能帮助我吗?

<?php
session_start();
require_once('Connections/koneksi.php');

if($_REQUEST['submit'] == "Submit")
{   
    $name       = $_POST["user"];       
    $masukdatabase = "INSERT INTO `com`(`user`) Values('$ame')";        
}
?>

<html>
<head>
<script>
function addRow(tableID) {
    var table = document.getElementById(tableID);
    var rowCount = table.rows.length;
    var row = table.insertRow(rowCount);
    var colCount = table.rows[0].cells.length;
    for(var i=0; i<colCount; i++) {
        var newcell = row.insertCell(i);
        newcell.innerHTML = table.rows[0].cells[i].innerHTML;

        switch(newcell.childNodes[0].type) {
                    case "text":
                            newcell.childNodes[0].value = "";
                            break;
                    case "checkbox":
                            newcell.childNodes[0].checked = false;
                            break;
                    case "select-one":
                            newcell.childNodes[0].selectedIndex = 0;
                            break;
                }

    }
}
function deleteRow(tableID) {
    try {
    var table = document.getElementById(tableID);
    var rowCount = table.rows.length;
    for(var i=0; i<rowCount; i++) {
        var row = table.rows[i];
        var chkbox = row.cells[0].childNodes[0];
        if(null != chkbox && true == chkbox.checked) {
            if(rowCount <= 1) {
                alert("Cant delete all rows");
                break;
            }
            table.deleteRow(i);
            rowCount--;
            i--;
        }
    }
    }catch(e) {
        alert(e);
    }
}


</script>

</head>
<body>
<form name="form1" method="post" action="adduser.php">                                 
    <table id="dataTable" width="auto" style="margin:-4px 0 0 0;" cellspacing="0px">
    <tr>
    <td style="width:20px;"><INPUT type="checkbox" name="chk" /></td>
    <td><select name="user" id="user">
    <option value="tono">tono</option>
    <option value="tini">tini</option>
    </select></td>                           
    </tr>
    </table>
<INPUT type="button" value="Add row" onclick="addRow('dataTable')" />
<INPUT type="button" value="Delete row" onclick="deleteRow('dataTable')" />                 


</form>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

要发送多个具有相同名称的select,您需要做的是通过添加[]使其成为一个数组,并将其名称name="user"的结尾变为name="user[]"。然后,当您通过POST收到变量时,它将是一个数组

使用您的示例:

<强> adduser.php

<?php
if($_SERVER['REQUEST_METHOD'] === 'POST')
{   
    foreach($_POST['user'] as $name)
    {
        $masukdatabase = "INSERT INTO `com`(`user`) Values('${name}')";
    }
}
?>

<强>的index.html

<html>
<head>
<script>
function addRow(tableID) {
    var table = document.getElementById(tableID);
    var rowCount = table.rows.length;
    var row = table.insertRow(rowCount);
    var colCount = table.rows[0].cells.length;
    for(var i=0; i<colCount; i++) {
        var newcell = row.insertCell(i);
        newcell.innerHTML = table.rows[0].cells[i].innerHTML;

        switch(newcell.childNodes[0].type) {
                    case "text":
                            newcell.childNodes[0].value = "";
                            break;
                    case "checkbox":
                            newcell.childNodes[0].checked = false;
                            break;
                    case "select-one":
                            newcell.childNodes[0].selectedIndex = 0;
                            break;
                }

    }
}
function deleteRow(tableID) {
    try {
    var table = document.getElementById(tableID);
    var rowCount = table.rows.length;
    for(var i=0; i<rowCount; i++) {
        var row = table.rows[i];
        var chkbox = row.cells[0].childNodes[0];
        if(null != chkbox && true == chkbox.checked) {
            if(rowCount <= 1) {
                alert("Cant delete all rows");
                break;
            }
            table.deleteRow(i);
            rowCount--;
            i--;
        }
    }
    }catch(e) {
        alert(e);
    }
}


</script>

</head>
<body>
<form name="form1" method="post" action="adduser.php">                                 
    <table id="dataTable" width="auto" style="margin:-4px 0 0 0;" cellspacing="0px">
    <tr>
    <td style="width:20px;"><INPUT type="checkbox" name="chk" /></td>
    <td><select name="user[]" id="user">
    <option value="tono">tono</option>
    <option value="tini">tini</option>
    </select></td>                           
    </tr>
    </table>
<INPUT type="button" value="Add row" onclick="addRow('dataTable')" />
<INPUT type="button" value="Delete row" onclick="deleteRow('dataTable')" />                 
<input type="submit" value="Submit" />
</form>

</body>
</html>