简体   繁体   中英

How to save dynamic textbox to database using PHP

I have here my JS script that dynamically add three textbox when the user click the button 'Add item'. The three textbox have different fields when saved in database. But it seems that in my PHP code it doesn't catch any value from the textbox. In the database it only shows 'Array'. Please help me! Thanks!

<script language="javascript">
row_no=0;
function addRow(tbl,row){
row_no++;
if (row_no<=20){
    if (row_no<=20){
if (row_no>=10){
var textbox  = row_no+'.)&nbsp;<input type="text" size = "50"  maxlength= "50" name= "desk_user[]">';}
if (row_no<10){
var textbox  = row_no+'.  )&nbsp;<input type="text" size = "20"  maxlength= "50" name= "desk_user[]">';}
var textbox2 = '<input type="text" size = "60" maxlength= "250" name= "desk_report[]">';
var textbox3 = '<input type="text" size = "60" maxlength= "250" name= "desk_action[]">';

var tbl = document.getElementById(tbl);
var rowIndex = document.getElementById(row).value;
var newRow = tbl.insertRow(row_no);
var newCell = newRow.insertCell(0);
newCell.innerHTML = textbox;
var newCell = newRow.insertCell(1);
newCell.innerHTML = textbox2;
var newCell = newRow.insertCell(2);
newCell.innerHTML = textbox3;
}
if (row_no>20){
alert ("Too Many Items. Limit of 20."); 
}
}
}

</script>

My PHP code:

<?php

$con = mysql_connect ("localhost","root","nasi") or die
('cannot connect to database error: '.mysql_error());


if (isset($_POST['desk_user']) &&
isset($_POST['desk_report']) &&
isset($_POST['desk_action']))
{

$desk_user = $_POST['desk_user'];
$desk_report = $_POST['desk_report'];
$desk_action = $_POST['desk_action'];

if (!empty($desk_user)&& !empty($desk_report)&& !empty($desk_action)) {

mysql_select_db("csr", $con);
$sql = "INSERT INTO `desktoplaptop` (`desk_user`,`desk_report`,`desk_action`) VALUES ('$_POST[desk_user]','$_POST[desk_report]','$_POST[desk_action]') ";

if ($sql_run = mysql_query($sql)) {
                            echo 'ok.'; 
                                }
                        else {
                                    echo '*Sorry, we couldn\'t register you at this time. Try again later.';
                                    }
}

}

?>

You are getting value as Array because you have defined textbox name as array,

<input type="text" size = "20"  maxlength= "50" name= "desk_user[]">

Modify Your code like this

 <?php

    $con = mysql_connect ("localhost","root","nasi") or die
    ('cannot connect to database error: '.mysql_error());


    if (isset($_POST['desk_user']) &&
    isset($_POST['desk_report']) &&
    isset($_POST['desk_action']))
    {

    $desk_user_arr = $_POST['desk_user'];//contains array value
    $desk_report = $_POST['desk_report'];//contains array value
    $desk_action = $_POST['desk_action'];//contains array value
    foreach($desk_user_arr as $key=>$desk_user) { //Loop through arrays
    if (!empty($desk_user) && !empty($desk_report[$key]) && !empty($desk_action[$key])) {
   mysql_select_db("csr", $con);
    $sql = "INSERT INTO `desktoplaptop` (`desk_user`,`desk_report`,`desk_action`) VALUES ('$desk_user','$desk_report[$key]','$desk_action[$key]') ";

    if ($sql_run = mysql_query($sql)) {
     echo 'ok.'; 
    } else {
      echo '*Sorry, we couldn\'t register you at this time. Try again later.';
    }
   }
  }
}
?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM