AJAX-PHP组合:$。将复选框值发布到PHP
我花了好几天的时间试图解决这个问题,但到目前为止没有结果…AJAX-PHP组合:$。将复选框值发布到PHP,php,javascript,jquery,ajax,checkbox,Php,Javascript,Jquery,Ajax,Checkbox,我花了好几天的时间试图解决这个问题,但到目前为止没有结果… 我所要做的就是在用户选中或取消选中复选框时将其值发布到php form.php: <?php if (isset($_POST['box'])) { echo $_POST['box']; } ?> <script> $(document).ready(function() { $('.box').on('change', function(event) { var checkbox = $(even
我所要做的就是在用户选中或取消选中复选框时将其值发布到php form.php:
<?php
if (isset($_POST['box'])) {
echo $_POST['box'];
} ?>
<script>
$(document).ready(function() {
$('.box').on('change', function(event) {
var checkbox = $(event.target);
var isChecked = $(checkbox).is(':checked');
$.post('/form.php', {id: checkbox.attr('id'), value: isChecked});
});
});
</script> //Credit cymen
<form action="form.php" method="post">
<input id="box" class="box" name="box" type="checkbox" value="YESSSSSS!" />
<input id="box" class="box" name="box" type="checkbox" value="YESSSSSS!" />
</form>
脚本:
<?php
if (isset($_POST['box'])) {
echo $_POST['box'];
} ?>
<script>
$(document).ready(function() {
$('.box').on('change', function(event) {
var checkbox = $(event.target);
var isChecked = $(checkbox).is(':checked');
$.post('/form.php', {id: checkbox.attr('id'), value: isChecked});
});
});
</script> //Credit cymen
<form action="form.php" method="post">
<input id="box" class="box" name="box" type="checkbox" value="YESSSSSS!" />
<input id="box" class="box" name="box" type="checkbox" value="YESSSSSS!" />
</form>
$(文档).ready(函数(){
$('.box')。在('change',函数(事件){
var复选框=$(event.target);
var isChecked=$(复选框).is(':checked');
$.post('/form.php',{id:checkbox.attr('id'),value:isChecked});
});
});
//信用西门
表格:
<?php
if (isset($_POST['box'])) {
echo $_POST['box'];
} ?>
<script>
$(document).ready(function() {
$('.box').on('change', function(event) {
var checkbox = $(event.target);
var isChecked = $(checkbox).is(':checked');
$.post('/form.php', {id: checkbox.attr('id'), value: isChecked});
});
});
</script> //Credit cymen
<form action="form.php" method="post">
<input id="box" class="box" name="box" type="checkbox" value="YESSSSSS!" />
<input id="box" class="box" name="box" type="checkbox" value="YESSSSSS!" />
</form>
(*)我在
$\u POST['box']
上什么也没有得到您的JavaScript正在向PHP提交此数据:
{id: checkbox.attr('id'), value: isChecked}
这里有两条数据:“id”和“value”。您没有名为“box”的数据块,因此不会填充
$\u POST['box']
。您的JavaScript正在向PHP提交此数据:
{id: checkbox.attr('id'), value: isChecked}
这里有两条数据:“id”和“value”。您没有一段名为“box”的数据,因此将不会填充
$\u POST['box']
。$\u发送到form.php的POST数组看起来不是$\u POST['box']。看起来是这样的:
array(2) {["id"]=>string(3) "box" ["value"]=> string(4) "true"}
因此,您可以访问像这样的变量:t$\u POST['id']或$\u POST['value']。您正在这个片段中的JS中声明变量:{id:checkbox.attr('id'),value:isChecked}
使用var_dump(例如var_dump($\u POST))在PHP中检查您在vars中拥有的内容是很好的
使用Firebug插件到FF,调试AJAX。$\u发送到form.php的POST数组看起来不是$\u POST['box']。看起来是这样的:
array(2) {["id"]=>string(3) "box" ["value"]=> string(4) "true"}
因此,您可以访问像这样的变量:t$\u POST['id']或$\u POST['value']。您正在这个片段中的JS中声明变量:{id:checkbox.attr('id'),value:isChecked}
使用var_dump(例如var_dump($\u POST))在PHP中检查您在vars中拥有的内容是很好的
将Firebug插件用于FF,以调试AJAX。我将更改为:
$.post('/form.php', {name: checkbox.attr('name'), checked: isChecked, value : checkbox.val()});
在PHP端,您将收到:
Array
(
[name] => box
[checked] => true
[value] => YESSSSSS!
)
您可以访问POST数据,如:
echo $_POST['name']; // box
echo $_POST['checked']; // true/false
echo $_POST['value']; // YESSSSSS!
在POST请求中包含复选框值非常重要,因为这是识别哪个复选框已更改的唯一方法。我将更改为:
$.post('/form.php', {name: checkbox.attr('name'), checked: isChecked, value : checkbox.val()});
在PHP端,您将收到:
Array
(
[name] => box
[checked] => true
[value] => YESSSSSS!
)
您可以访问POST数据,如:
echo $_POST['name']; // box
echo $_POST['checked']; // true/false
echo $_POST['value']; // YESSSSSS!
在POST请求中包含复选框值非常重要,因为这是识别哪个复选框已更改的唯一方法。首先,每个复选框的id必须是唯一的!验证你的html。。。我必须是独一无二的,但我有很多。php怎么知道我指的是哪一个?@wizard一般来说,输入的
name
属性对应于在发布表单时包含其值的请求参数。@wizard,元素id
永远不会发送到服务器,只有它的name
和value
。对于您在这里执行的操作,不需要id
,因为您使用类名来选择复选框。首先,每个复选框的id必须是唯一的!验证你的html。。。我必须是独一无二的,但我有很多。php怎么知道我指的是哪一个?@wizard一般来说,输入的name
属性对应于在发布表单时包含其值的请求参数。@wizard,元素id
永远不会发送到服务器,只有它的name
和value
。对于您在这里执行的操作,不需要id
,因为您使用类名来选择复选框。您的意思是:{id:checkbox.attr('box'),value:isChecked}
?试试看-它不起作用。@向导-不。你没有
是吗?这仍然会提交id
一些内容,并且您正在数据中查找框
。如果您想将id
作为$\u POST['box']
提交,那么{box:…
。您的意思是:{id:checkbox.attr('box'),value:isChecked}
?试试看-它不起作用。@向导-不。你没有
,是吗?那仍然会提交id
一些东西,你正在数据中寻找box
。如果你想提交id
作为$\u POST['box']
,那么{box:…
。不幸的是,它仍然不起作用……尽管一切似乎都在正确的位置。不幸的是,它仍然不起作用……尽管一切似乎都在正确的位置。