2015-07-21 148 views
0

我正在为餐厅管理系统制作滑动窗体的一种类型,其中用户将在每个窗体中选择项目,所选值将显示在最后的“确认窗体”,我想插入在确认表格中获得的选定项目被插入到数据库中。从javascript插入值到数据库

<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 * from submenu WHERE 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 * from submenu WHERE 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 * from submenu WHERE 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 * from submenu WHERE 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> 

我想插入在confirm form获得到使用PHP数据库中的值。

+0

因为没人知道你的数据库是什么样子,我怀疑你会得到很多帮助。一般情况下,表单发布到脚本中,在该脚本中检查使用的发布内容:echo“

".print_r($_POST,true)."
”;从那里,你需要构造一些INSERT语句并在你的数据库上运行它。 –

+0

我想插入在“标签”获得的值,我只想为此插入一个简单的字符串,例如: - 插入测试值(“标签值”); 但我不知道在哪里以及如何把这个字符串插入值 – Tinkal

+0

我会在正常发帖回答,因为它不适合在这里。 –

回答

0

这是必不可少的一部分:

  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 } ?> 

您重复它对于其他类别(萨拉斯,甜食等),所以让我们看看在第一次。

有几件事情是错的。 首先,你的标签说= =“名称”。名称应该是文档中的唯一标识符。标识符是id =“whatever”。所以如果你想用你的标签来定位一个特定的元素,一定要让id =“”匹配for =“”。

在你的情况下,这很容易通过从底层数据库表中添加一个唯一的键来完成。

但我无法帮助,因为我看不到数据库中的列。您使用:

select * from submenu WHERE menu_id=33 

请停止使用惰性*和NAME您需要的列。 我希望你有一个列是tblsubmenu中的主键。假设它是ID。 (我想一个更好的名字会被submenuid。)

然后,你可以用它来作标记和id的权利,就像这样:

  <?php 
      $qu = mysql_query("select submenuid, submenu, from submenu WHERE 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 } ?> 

你匹配的=“”和id这样=“”,例如:在标签中:for =“name181”和id =“name181”。

另外请注意,我改变你的输入表单元素,现在它的名字是“submenuid []”

如果现在发布的形式,你会在$ _ POST [“submenuid”]得到的数组。

打印出来有:

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

而且看它是否符合你想送什么。

如果是这样,可以用现在开始插入,例如:

的foreach($ _POST [ “submenuid”]作为submenuid $){$ ID =(int)的$ submenuid; //强制它是一个整数 $ SQL =“INSERT INTO tblorders(submenuid,customerid)VALUES($ id,111)”; //这里执行对数据库,见下面的链接 }

​​

PHP website mysqli.query.php