将值从javascript插入数据库

时间:2015-07-21 07:36:54

标签: javascript php jquery mysql

我正在为餐厅管理系统制作一种滑块形式,用户将在其中选择每种形式的项目,最后显示所选的值"确认表格"并且我想插入在确认表格中获得的所选项目的值以插入数据库。

 <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 formPHP获取的值插入数据库。

1 个答案:

答案 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)”;    //针对数据库执行此处,请参阅下面的链接 }

w3schools-link for starters

PHP website mysqli.query.php