【问题标题】:Ajax post and get checkbox valueAjax 发布并获取复选框值
【发布时间】:2014-02-05 13:01:56
【问题描述】:

我有这个代码:

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

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

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

checkbox.php 文件:

    $checkbox = intval($_POST['foton']);

if($checkbox == 1){
    mysql_query("UPDATE users SET sekretessFoton = 1 WHERE userID = $memberID");
}else{
    mysql_query("UPDATE users SET sekretessFoton = 0 WHERE userID = $memberID");    
}

问题是我没有从 $_POST['foton'] 获得任何价值 怎么了?

谢谢

【问题讨论】:

    标签: php ajax post checkbox


    【解决方案1】:

    在以下位置编辑您的代码:

    $.ajax( {
        type: 'POST',
        url: '/ajax/checkbox.php',
        data: { foton : $('input:checkbox:checked').val()},
    
        success: function(data) {
            $('#message').html(data);
        }
    } );
    
    /ajax/checkbox.php?name=foton
    

    这里有一个名为name$_GET 参数,它的foton

    在我的代码中,您将在名为 foton$_POST 参数 中发送复选框的值。

    当您指定数据时,您不必在 $.ajax 网址中设置查询字符串(而不是您想要重定向到将处理您的 $_GET 参数的页面)。

    【讨论】:

      【解决方案2】:

      您正在尝试访问未定义或未发送的 POST 变量。

      试试

      $checkbox = intval($_POST['checked_box']);
      

      在您的 ajax 中,您以checked_box 发送数据。此外,您不会在此复选框值上发布任何其他内容。您发送的唯一其他值是通过查询字符串?name=foton 可以通过$_GET['name'] 访问。我希望你明白这一点。

      【讨论】:

        【解决方案3】:

        你已经用这个发布了 ajax:

        data: { checked_box : $('input:checkbox:checked').val()},
        

        这里的checked_box 是您的参数的名称。您需要通过此名称获取价值。

        试试这个:

        $checkbox = intval($_REQUEST['checked_box']);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-17
          • 1970-01-01
          相关资源
          最近更新 更多