php - Insert value from javascript to database -


i making type of slider form restaurant management system in user select items in each form , selected values displayed @ last "confirm form" , want insert values of selected items obtained @ confirm form inserted database.

 <script>      function changecolor(obj){         obj.style.color = "red";         var selected_val = obj.innerhtml;         document.getelementbyid('target_div').innerhtml=document.getelementbyid('target_div').innerhtml+" "+selected_val;     }  </script>    <form id="formelem" name="formelem" action="" method="post">             <fieldset class="step">                 <legend>roti</legend>                 <?php                 $qu = mysql_query("select * submenu menu_id=33") or die(mysql_error());                 while($f = mysql_fetch_array($qu)){                 ?>                 <p>                     <label for="name" onclick="changecolor(this)"><?php echo $f['submenu']; ?></label>                     <input id="name" name="name" type="hidden" autocomplete=off value="<?php echo $f['id']; ?>"/>                     </p>                 <?php } ?>             </fieldset>             <fieldset class="step">                 <legend>sabji</legend>                 <?php                 $qu2 = mysql_query("select * submenu menu_id=34");                 while($f2 = mysql_fetch_array($qu2)){                 ?>                 <p>                     <label for="name" onclick="changecolor(this)"><?php echo $f2['submenu']; ?></label>                     <input id="name" name="name" type="hidden" autocomplete=off value="<?php echo $f2['id']; ?>"/>                 </p>                 <?php } ?>             </fieldset>             <fieldset class="step">                 <legend>salad</legend>                 <?php                 $qu3 = mysql_query("select * submenu menu_id=35");                 while($f3 = mysql_fetch_array($qu3)){                 ?>                 <p>                     <label for="name" onclick="changecolor(this)"><?php echo $f3['submenu']; ?></label>                     <input id="name" name="name" type="hidden" autocomplete=off value="<?php echo $f3['id']; ?>"/>                 </p>                <?php } ?>             </fieldset>             <fieldset class="step">                 <legend>sweets</legend>                 <?php                 $qu4 = mysql_query("select * submenu menu_id=36");                 while($f4 = mysql_fetch_array($qu4)){                 ?>                 <p>                     <label for="name" onclick="changecolor(this)"><?php echo $f4['submenu']; ?></label>                     <input id="name" name="name" type="hidden" autocomplete=off value="<?php echo $f4['id']; ?>"/>                 </p>                 <?php } ?>             </fieldset>             <fieldset class="step">                 <legend>confirm</legend>                 <p>                     <label id="target_div" for="name"></label>                  </p>                 <p class="submit">                     <button id="registerbutton" type="submit" name="confirm">confirm</button>                  </p>             </fieldset>         </form> 

i want insert value obtained @ confirm form database using php.

this essential part:

           while($f = mysql_fetch_array($qu)){             ?>             <p>                 <label for="name" onclick="changecolor(this)"><?php echo $f['submenu']; ?></label>                 <input id="name" name="name" type="hidden" autocomplete=off value="<?php echo $f['id']; ?>"/>                 </p>             <?php } ?> 

you repeat other categories (salas, sweets, etc), let's @ first.

and few things wrong it. first, label says for="name". name should unique identifier in document. identifier id="whatever". if want target specific element label, sure make id="" match for="".

in case done adding unique key underlying database-table.

but cannot because cannot see columns in database. use:

select * submenu menu_id=33 

please stop using lazy * , name columns need. hope have column primary key in tblsubmenu. let's id. (i think better name have been submenuid.)

then can use labeling , id's right, this:

            <?php             $qu = mysql_query("select submenuid, submenu,  submenu menu_id=33") or die(mysql_error());             while($f = mysql_fetch_array($qu)){             ?>             <p>                 <label for="name<?php echo $f['id']; ?>" onclick="changecolor(this)"><?php echo $f['submenu']; ?></label>                 <input id="name<?php echo $f['id']; ?>" name="submenuid[]" type="hidden" autocomplete=off value="<?php echo $f['id']; ?>"/>                 </p>             <?php } ?> 

that way have matching for="" , id="", example: in label: for="name181" , id="name181".

also note changed input form-element, it's name "submenuid[]"

if post form, receive array in $_post["submenuid"].

print out with:

echo "<pre>".print_r($_post,true)."</pre>"; 

and see if matches wanted send.

if so, can start inserting, example:

foreach ($_post["submenuid"] $submenuid){ $id = (int)$submenuid; // force integer $sql = "insert tblorders (submenuid, customerid) values ($id, 111)"; // execute here against database, see links below }

w3schools-link starters

php website mysqli.query.php


Comments