我正在为餐厅管理系统制作一种滑块形式,用户将在其中选择每种形式的项目,最后显示所选的值"确认表格"并且我想插入在确认表格中获得的所选项目的值以插入数据库。
<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 :(得分: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 } ?>
你为其他类别(萨拉斯,糖果等)重复一遍,所以我们先来看看。
有些事情是错的。 首先,你的标签上写着=“name”。名称应该是文档中的UNIQUE标识符。标识符是id =“whatever”。因此,如果您想使用标签定位特定元素,请务必使id =“”与for =“”匹配。
在您的情况下,通过从底层数据库表中添加唯一键,可以轻松完成此操作。
但我无法帮助,因为我无法在数据库中看到您的列。你使用:
select * from submenu WHERE menu_id=33
请停止使用lazy *和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”]中的ARRAY。
打印出来:
echo "<pre>".print_r($_POST,true)."</pre>";
看看它是否与您想发送的内容相符。
如果是这样,您现在可以从插入开始,例如:
foreach($ _POST [“submenuid”] as $ submenuid){ $ id =(int)$ submenuid; //强制它为整数 $ SQL =“INSERT INTO tblorders(submenuid,customerid)VALUES($ id,111)”; //针对数据库执行此处,请参阅下面的链接 }