当前位置: 首页 > 知识库问答 >
问题:

选中复选框,然后输入新行

谯振国
2023-03-14

如何根据复选框结果插入数据库

我有5间客房,用户可以预订超过1间。

我如何将数据插入到我的预订表中,只选择房间。

这是我一直在尝试的,但它只适用于第一个房间,我尝试过其他房间,但这也不起作用。

    if(isset($_POST['room1'])) {
        $query = "insert into bookings (bookingNo,roomNo) 
        values ('$bookingNo','1')";                 
        $result = mysql_query($query);
    } 

这基本上只是为了输入roomNo和该房间的详细信息,例如预订日期和时间。

谢谢

类型

            <fieldset>

            <legend>Rooms</legend>
                <ol>
                    <li>
                        <label for =youthCafe>Youth Cafe</label>
                        <input type="checkbox"name="roomid[]" value="1" ><br>
                        <label for =inkwellMain>Inkwell Main</label>
                        <input type="checkbox" name="roomid[]" value="2"><br>
                        <label for =inkwellSmall>Inkwell Small</label>
                        <input type="checkbox"name="roomid[]" value="3"><br>
                        <label for =kitchen>Kitchen</label>
                        <input type="checkbox"name="roomid[]" value="4"><br>
                        <label for =outsideCatering>Outside Catering</label>
                        <input type="checkbox" name="roomid[]" value="5"><br>
                    </li>
                </ol>
            </fieldset>

共有3个答案

云和同
2023-03-14

您可以使用javascript在复选框上设置一个调用服务器上ajax函数的事件。服务器上的函数更新数据库。这样可以将数据库工作与接口工作分开。使用JQuery,它看起来像:

$('#myformelement :checkbox').click(function() {
   $.ajax({
        "url":      (call function using http request)...,
        "type":     "post",
        "data":     { elementid },
        "success":  function(data) {
            //everything ok
        },
        "error": function(data) {
           //error
        }
    });
陶寒
2023-03-14

如果选中room1。可能$u POST['room1']设置为“on”,而不是“true”或“1”。首先调试$\u POST['room1']

var_dump($_POST['room1']);

大多数情况下,这有助于了解有关类型和设置值的更多信息。

居飞扬
2023-03-14

您应该首先创建表单。由于您没有提到,我将发布一个示例:

重要提示:您应该使用MYSQLi或PDO函数来避免sql注入。除此之外,这是你需要的。(只是最基本的)

<?php
if ( isset($_POST['roomid']) ){
    foreach( $_POST['roomid'] as $value ){ //Receive the checkboxes as an array

         //you did not specify where $bookingNo came from, so
         //I'm assuming that you already have it from somewhere.

         $query = "insert into bookings (bookingNo,roomNo) 
                    values ('$bookingNo','$value')"; 

         $result = mysql_query($query);
    }
}
?>

<html>

<body>
    <form name="frm" method="post">
        <input type="checkbox" name="roomid[]" value="1"/>Room 1<br/>
        <input type="checkbox" name="roomid[]" value="2"/>Room 2<br/>
        <input type="checkbox" name="roomid[]" value="3"/>Room 3<br/>
        <input type="submit" name="submit" value="Send"/><br/>
    </form>
</body>

</html>
 类似资料:
  • 问题内容: 浏览器仅在提交表单时选中复选框输入值数据,这是浏览器的标准行为吗? 如果未提供任何值数据,默认值是否始终为“ on”? 假设以上内容正确,那么在所有浏览器中这种行为是否一致? 问题答案: 是的,标准行为是仅在选中复选框后才发送值。通常,这意味着您需要记住在服务器端期望使用的复选框的方式,因为并非所有数据都从表单返回。 默认值始终为“ on”,这在所有浏览器中都应保持一致。 W3C HT

  • 问题内容: 任何样式都会影响每个输入元素。有没有一种方法可以指定仅应用于复选框的样式,而无需将类应用于每个复选框元素? 问题答案: 使用CSS 2,您可以执行以下操作: 到目前为止,这应该得到广泛的支持。

  • 问题内容: 角度1.2: 我的功能状态不正确? 单击后,我想要状态。 问题答案: 和的执行顺序不明确,因为它们没有定义明确的优先级。相反,你应该使用或上,以确保您获得的正确值 模型 变量。 在您的情况下,这应该可以工作:

  • 下载整个项目。zip在这里 此问题的代码在Views文件夹中的CreateSchedule.aspx文件中。 以下是GridView的ASP.NET: 在取消选中某个框后调试事件时,网页上的复选框显示为未选中,但的值为true,即使该复选框在网页上显示为未选中。(chkRow是未选中的复选框) 更新3 我取得了一些突破。我发现复选框的问题在于嵌套的gridview位于使用JavaScript折叠和

  • 我试图在用户选择标签时显示文本, 例如,我有以下代码: 一旦用户单击复选框,将出现以下文本: “如果您选择了是,……” 我不确定JavaScript是否是实现这一点的最佳途径。 但是,如果是的话,会是这样的吗

  • 我试图创建一个表单,该表单顶部有一个复选框,当用户选中该复选框时,它会选择其他特定的复选框,但不是所有复选框。我很难通过反复试验或搜索找到答案。我唯一能找到的就是“全选”选项。不是我想要的。 理想情况下,当用户选中“管理包”旁边的复选框时,我想要“Chrome外观组”和“远程启动” 下面是代码和我在这方面的基本尝试,但它不起作用。提前谢谢。 超文本标记语言: Javascript 我不知道这个Ja