通过ajax,php,jquery传递checkbox的值

时间:2014-11-16 14:44:57

标签: javascript php jquery ajax

美好的一天。伙计们我遇到了问题。 我需要通过ajax将我的复选框值发送到php文件

我的问题 无论何时检查,我都希望在两种情况下传递值。 如果选中则应该通过value="true" 如果没有检查,那么只需传递内容中的值。通过ajax jquery

注意

我知道jquery(AJAX)文件中的代码应该使用if condition进行更新,但我不知道该怎么做

更新 -----

我通过以下答案解决了问题条件的问题

当我使用if(isset($_POST["content"]))时,在wallajax.php文件中

然后我通过ajax得到内容的te值,它也在页面

中恢复其值

但当我使用if(isset($_POST["content"]) && isset($_POST["check"]) )时 没有检索到任何值,因此页面上没有显示返回值

我无法理解,问题出在哪里,是在ajax脚本或wallajax.php文件

我的代码。

<script type="text/javascript">
$(function() {

$("#px").click(function() {
    var status2 = $("#status2").val();
     var checkit= $("#checkit").is(':checked');
       var dataString = 'content=' + status2 + '&check=' + checkit;
        $.ajax({
        type: "POST",
        url: "wallajax.php",
        data: dataString,
        cache: false,
        success: function(resol) {
        $('#wallposts').prepend(resol);
        console.log(resol)
              }
        }); return false;
    });

});
</script>

wallajax.php

if(isset($_POST["content"]) && isset($_POST["check"])  ) 
{
---fetched value------feed value in databse------
 }

的index.php

<textarea name="content" id="status2"></textarea>
<input name="check" id="checkit" type="checkbox" value="true">check it</input>
<div id="px">Post</div>

2 个答案:

答案 0 :(得分:2)

而不是

$("#checkit").val();

使用

$("#checkit").prop('checked');

OR

$("#checkit").is(':checked');

我建议

var data = {'content': status2, 'check': checkit};

而不是

var dataString = 'content=' + status2 + '&check=' + checkit;

答案 1 :(得分:0)

您有两个问题,您的dataString不包含&#34;&amp;&#34;在变量和复选框值之间没有正确捕获,下面修复了这两个问题:

<script type="text/javascript">
$(function() {

$("#px").click(function() {
    var status2 = $("#status2").val();
     var checkit= $("#checkit").prop('checked');
       var dataString = 'content=' + status2 + '&check=' + checkit;
        $.ajax({
        type: "POST",
        url: "wallajax.php",
        data: dataString,
        cache: false,
        success: function(resol) {
        $('#wallposts').prepend(resol);
        console.log(resol)
              }
        }); return false;
    });

});
</script>

你的php也存在问题,你是明确的&#34;设置&#34;以这种方式准备dataString时的变量,所以

isset($_POST['check']) && isset($_POST['content']) 

将始终返回true,更好的方式获取数据,以便不会发生在表单上使用jquery的.serialize()方法,虽然我没有看到你的HTML中的表单元素我假设有一个

var dataString = $('yourForm').serialize();