user3359065
user3359065

Reputation: 77

Dynamically Add Input Fields And Submit To Database With jQuery and PHP

I want to Post Multiple values for foreach function because i have multiple dynamic textbox then how should i send the values in database?? how to write foreach function for dat.. the code below display 2 multiple textbox but didnt submit values in databse

<html>
<head>
<title></title>
<script type="text/javascript" src="jquery-1.9.1.js"></script>
<script type="text/javascript">
var counter = 0;
$(function(){
 $('p#add_field').click(function(){
 counter += 1;
 $('#container').append(
 '<strong>Hobby No. ' + counter + '</strong><br />'
 + '<input id="field_' + counter + '" name="dynfields[]' + '" type="text" /><br />'

+'<strong>HolidayReason ' + counter + '</strong>&nbsp;'
 + '<input id="holidayreason_' + counter + '" name="holireason[]' + '" type="text" />'
  );

 });
});
</script>

<body>

<?php
if (isset($_POST['submit_val'])) {
if (($_POST['dynfields'])&& ($_POST['holireason'])) {
//$aaa=array($_POST['dynfields']);
foreach ($_POST['dynfields'] as $key=>$value) 
{
$values = mysql_real_escape_string($value);
//$holireasons = mysql_real_escape_string($holireason);

$query = mysql_query("INSERT INTO my_hobbies (hobbies) VALUES ('$values')" );


}
}

echo "<i><h2><strong>" . count($_POST['dynfields']) . "</strong> Hobbies Added</h2></i>";

 mysql_close();
}
?>
<?php if (!isset($_POST['submit_val'])) { ?>
 <h1>Add your Hobbies</h1>
 <form method="post" action="">

 <div id="container">
 <p id="add_field"><a href="#"><span>Click To Add Hobbies</span></a></p>
 </div>

 <input type="submit" name="submit_val" value="Submit" />
 </form>
<?php } ?>

</body>
</html>

Upvotes: 1

Views: 14208

Answers (2)

vnie89
vnie89

Reputation: 11

Use array_combine as follows.

foreach(array_combine($_POST['dynfields'] , $_POST['holireason']) as $dyn => $holi) {

   $abc = mysql_real_escape_string($dyn);
   $xyz = mysql_real_escape_string($holi);

   $sql =  mysql_query ("INSERT INTO my_hobbies (hobbies,Holidayreason) VALUES ('".$abc."','".$xyz."')");

}

100% works fine.

Upvotes: 1

Dexter
Dexter

Reputation: 1796

try this

       <html>
            <head>
            <title></title>
           <script src="//code.jquery.com/jquery-1.10.2.js"></script>
            <script type="text/javascript">
            var counter = 0;
            $(function(){
             $('p#add_field').click(function(){
             counter += 1;
             $('#container').append(
             '<strong>Hobby No. ' + counter + '</strong><br />'
             + '<input id="field_' + counter + '" name="dynfields[]' + '" type="text" /><br />'

            +'<strong>HolidayReason ' + counter + '</strong>&nbsp;'
             + '<input id="holidayreason_' + counter + '" name="holireason[]' + '" type="text" />'
              );

             });
            });
            </script>

            <body>

            <?php
            if (isset($_POST['submit_val'])) {
            if (($_POST['dynfields'])&& ($_POST['holireason'])) {
            $no = count($_POST['dynfields']);
           for ($i=0; $i <$no ; $i++) { 
            echo $_POST['dynfields'][$i]."<br>";
            echo $_POST['holireason'][$i]."<br>";
        $abc = mysql_real_escape_string($_POST['dynfields'][$i]);
        $xyz = mysql_real_escape_string($_POST['holireason'][$i]);
       $sql =  "INSERT INTO my_hobbies (hobbies,Holidayreason) VALUES ('$abc','$xyz')";
mysql_query($sql);
        }

            }

            echo "<i><h2><strong>" . count($_POST['dynfields']) . "</strong> Hobbies Added</h2></i>";

             mysql_close();
            }
            ?>
            <?php if (!isset($_POST['submit_val'])) { ?>
             <h1>Add your Hobbies</h1>
             <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

             <div id="container">
             <p id="add_field"><a href="#"><span>Click To Add Hobbies</span></a></p>
             </div>

             <input type="submit" name="submit_val" value="Submit" />
             </form>
            <?php } ?>

            </body>
            </html>

Upvotes: 2

Related Questions