如果在php中选中了复选框

时间:2015-10-22 07:39:36

标签: php ajax if-statement checkbox checked

我使用了以下代码

order.php

        <script type="text/javascript">
        function processForm() { 
        $.ajax( {
            type: 'POST',
            url: 'ajax.php',
            data: { checked_box : $('input:checkbox:checked').val()},

            success: function(data) {
                $('#results').html(data);
            }
        } );
        }
        </script>

        <input type="checkbox" name="checked_box" value="1" onclick="processForm()">

和ajax.php

<?php
include "config.php";
$checkbox = intval($_POST['checked_box']);
echo $checkbox;
if($checkbox == 1){
    $Query="SELECT * FROM `order` ORDER BY sl_no DESC";
}else{
    $Query="SELECT * FROM `order` ORDER BY sl_no ASC";    
}
$result=mysql_query($Query);
echo $Query;
while($row = mysql_fetch_object($result)) { 
?>

效果很好但是当我取消选中时会显示错误

注意:未定义的索引:第24行的C:\ xampp \ htdocs \ website \ admin \ ajax.php中的checked_box

如何避免此错误???

4 个答案:

答案 0 :(得分:0)

这不是错误,而是通知。如果您尝试访问非初始化变量,您将收到此类通知。只需使用适当的起始值初始化它。

代码中棘手的部分是您假设您将获得复选框的值,因为它包含在表单中。但是,除非他们已经检查过,否则不会发送复选框。

答案 1 :(得分:0)

而不是intval($_POST['checked_box']);使用isset($_POST['checked_box']);来确保该值存在。

之后,如果您仍然需要该值,则可以使用intval

答案 2 :(得分:0)

我有一个选择下拉框

<select name="status" id="status" onchange="changeStatus()">
    <option value="step_1">step_1</option>
    <option value="step_2">step_2</option>
    <option value="step_3">step_3</option>
    <option value="step_4">step_4</option>
</select>

我的javascript

    <script>
        function changeStatus() {
            $('select.changeStatus').change(function(){
                $.ajax({
                        type: 'POST',
                        url: 'update_status.php',
                        data: {changeStatus: $('select.changeStatus').val()},
                        dataType: 'html'
                 });
            });
        });
    </script>

所以我想从select下拉框中选择的值发送到php文件(update_status.php)

答案 3 :(得分:-1)

这一切都是因为POST请求中只包含选中的复选框。因此,您需要检查是否存在checked_box密钥,以确定是否设置了复选框:

if(isset($_POST['checked_box']) {
   .. set
} else {
   .. not set
}