美好的一天。伙计们我遇到了问题。 我需要通过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>
答案 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();