【问题标题】:Checkbox / Switch not functioning properly复选框/开关无法正常工作
【发布时间】:2014-04-18 08:20:37
【问题描述】:

我在一个带有代码的 php 页面上有一个开关:

<form action="onoff-switch.php" method="post">
<div class="onoffswitch">
    <input type="checkbox" 
               name="onoffswitch" 
               class="onoffswitch-checkbox" 
               id="myonoffswitch" checked 
               value="on">
    <label class="onoffswitch-label" for="myonoffswitch">
        <div class="onoffswitch-inner"></div>
        <div class="onoffswitch-switch"></div>
    </label>
</div>
 <input type="submit" name="formSubmit" value="Submit" />
</form>

当被选中时,它应该向 php 页面 onoff-switch.php 发送 ON 或 OFF 值。两个问题,第 15 行是不需要的,但是,除非它在那里,否则表单不会提交任何值。去掉第 15 行,当我选中或取消选中该框时,它应该自行提交。它没有。

此外,onoff-switch.php 给出了值“OFF”的反馈,我不知道它是从哪里得到的,因为代码中没有“OFF”。当然,如果没有选中该框,则应该是该值。

问题是这个复选框哪里出错了?

PHP 代码:

<?php
$con=mysqli_connect("localhost","user","pass","db");
// Check connection
if (mysqli_connect_errno())
{
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}


if (isset($_POST['formSubmit']))
{
    // escape variables for security
    $scanningvalue = mysqli_real_escape_string($_POST['onoffswitch']);

    $sqlon="INSERT INTO configuration (scanning) VALUES ('$scanningvalue')";
    $result=mysqli_query($con, $sqlon);
    if($scanningvalue=='') $scanningvalue='off';
       if($result)
    {
       echo "The db operation done (1 record added) and switch value ".$scanningvalue;
    }
else
{
   echo "The db operation error and switch value ".$scanningvalue;
}

}

mysqli_close($con);
?> 

【问题讨论】:

  • 可以显示php代码吗?

标签: php forms checkbox


【解决方案1】:
if($scanningvalue=='') $scanningvalue='off';

您添加了上面的代码,而不是在查询之后添加它.

【讨论】:

  • 嗯,你失去了我。在上面的代码中,我认为该行正在设置值。如何将整个 if then else 方法移动到代码中的另一个位置??
  • 我不明白你的评论。
【解决方案2】:

如果你想要开/关,为什么不使用单选按钮而不是复选框?

【讨论】:

  • 没关系。是一样的东西。仍然需要 POST 一个 php 表单的值来读取并发送到数据库。每个脚本在运行之前都会读取开/关值,以确保它们不应该被关闭....
猜你喜欢
  • 2017-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-16
  • 2020-07-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多