【问题标题】:Checkbox Action Event复选框动作事件
【发布时间】:2015-07-14 16:24:17
【问题描述】:

寻找一些关于我在 PHP 中添加的复选框(开关类型)的帮助。 这些复选框是使用从 MySQL 数据库接收到的数据动态创建的。 根据放置在数据库中的复选框的条件,将复选框加载到页面上。

现在,我需要帮助来构建一个执行某些操作的代码,例如每次操作此复选框时写回另一个数据库表;即它的初始状态可以是:checked 或留空(未选中),并且每个复选框都有一个来自数据库的 ID 或值。但是,任何从空白到:checked 或从:checked 到空白发生的动作,它只需要为那个特定的复选框触发一个动作。

需要 PHP 方面的帮助。

复选框的代码如下所示:

echo "<input type='checkbox' class='input-swtoggle' name='switch-box' ";
$lightStatus = $row->light_status;
if ($lightStatus == "1") {
   echo "checked>";
}
else{
   echo ">";
}

PS:我确实尝试了很多谷歌搜索和 Stackoverflow,但没有一个对上述情况有帮助。

【问题讨论】:

    标签: php jquery mysql css checkbox


    【解决方案1】:

    您可以使用.on()将点击事件绑定到复选框

    $(function(){
      $(document).on('click',"input:checkbox.input-swtoggle",function() {
         alert($(this).is(':checked'));
      });
    });
    

    【讨论】:

    • 这是功能性的,但没有为我捕获未检查状态。但我不确定我可以在哪里插入逻辑。这需要在表格内还是我也可以在外面?抱歉,我是 PHP 新手。
    • 这是 jQuery,可以在 html 中的任何位置,但建议使用 &lt;head&gt;。此代码 - $(this).is(':checked') 将为您提供复选框的状态,无论它是选中还是空白。
    • @谢谢Bhushan,所以理想情况下,我们是否正在查看它以返回布尔结果?如,它根据复选框的 :checked 状态说是或否?然后我们根据YES和NO编写逻辑?
    • $(this).is(':checked') 如果选中则返回 true,未选中则返回 false。您可以相应地提出您的逻辑。
    • 我使用 if-else 为布尔值做了逻辑,我从中得到了。但是任何动作都会给我错误的输出。这是 JSFiddle:jsfiddle.net/fqkq4hqy/1 请指导我在哪里犯了错误。
    【解决方案2】:
    <?php
    // HTML code
    $checkced = ($row->light_status == '1') ? 'checked="checked"' : '';
    echo '<input type="checkbox" class="input-swtoggle" name="switchbox[]"' . $checkced . '/>';
    // Code after form posted:
    if (! empty($_POST['switchbox'])) {
      foreach ($_POST['switchbox'] as $switch) {
            // Apply your logic here.
        }
    }
    ?>
    

    【讨论】:

    • HTML 代码的创建很简洁,这很有帮助。但是我的代码不在表单内。你说我把它放在一个表单中然后执行这个很好吗,理想情况下我不希望页面重定向到任何地方,而是留在这个显示复选框的页面上。
    • 您可以使用条件重定向它或将其放在同一页面上 if (isset($_POST)) { // 您发布的代码} else {// 您的 HTML 表单}
    • 好的,明白了。现在将尝试并确认。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多