使用 AJAX 将复选框值 1 如果选中,如果不是 0 传递给 PHP
Posted
技术标签:
【中文标题】使用 AJAX 将复选框值 1 如果选中,如果不是 0 传递给 PHP【英文标题】:Pass checkbox values 1 if checked if not 0to PHP using AJAX 【发布时间】:2015-08-23 15:44:04 【问题描述】:我想通过使用 php 复选框将“0”或“1”插入 mysql 数据库,但值无法存储到数据库中! 我试图插入一个这样的复选框数组:
1:选中
0:未选中
[answer] => Array
(
[0] => answer 1
[1] => answer 2
[2] => answer 3
)
[check] => Array
(
[0] => 1
[1] => 0
[2] => 1
)
php 文件:
<td> <!-- <input type="hidden" name="check[]" value="0" >-->
<input type="checkbox" id="check" name="check[]" value="1">
</td>
在通过 AJAX 的进程文件中,我存储了答案数据库,但我无法存储每个选定答案的检查值
$query = mysql_query("INSERT INTO questions
(nom_question,id_categorie)
VALUES('$question','$categorie')", $conn)
or die(mysql_error());
//last insert id question
$last_id = mysql_insert_id();
$check = $_POST['check'];
foreach ($reponse as $key=>$value )
$values = mysql_real_escape_string($value);
$x='1';
$query = mysql_query("INSERT INTO reponses
(nom_reponse,id_question,id_categorie,correct)
VALUES ('$values',
'$last_id',
'$categorie',
'$x')")
or die(mysql_error());
请帮忙!如果检查或不检查,我如何存储答案。
【问题讨论】:
【参考方案1】:这真的很简单,你必须记住 CheckBoxes 只会从 html 表单发送到脚本,如果它们实际上是被选中的,所以未选中的复选框只是不存在于 $_POST 或 $ _GET 数组。
这并没有看起来那么大的问题,您需要做的就是检查复选框是否存在,如果存在则检查它。
所以在你的代码中而不是这样做
$check = $_POST['check'];
这样做
$check = isset($_POST['check']) ? 1 : 0;
我会进一步展示将其存储在数据库中的代码,但您的代码实际上并未在任何地方使用 $check
变量。
【讨论】:
【参考方案2】:用 ajax 试试这个帖子 将 id 更改为 class 以便于选择
var selectedCB = new Array();
$('.cbcheck:checked').each(function()
selectedCB.push(this.value);
);
$.ajax(
url: 'insert.php',
dataType: 'text',
type: 'post',
contentType: 'application/x-www-form-urlencoded',
data: recordsval: selectedCB,
success: function( data)
$('#result').html(data);
,
error: function(errorThrown )
console.log( errorThrown );
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="checkbox" class="cbcheck" name="check[]" value="1">
<input type="checkbox" class="cbcheck" name="check[]" value="0">
<input type="checkbox" class="cbcheck" name="check[]" value="1">
<input type="submit" value="submit">
<div id="result"></div>
和php句柄
<?php
$data = $_POST['recordsval'];
var_dump($data);
?>
用您的代码调整它...
【讨论】:
【参考方案3】:非常感谢先生重播;但问题是复选框是动态的,所选值取决于用户! 我已经使用表单 serliaze 通过 ajax 发送 pot 数据:复选框在表单中
<form name="form" id="form" role="form" method="post" action="">
<<tr>
<td>Answer</td>
<td><input type="text" id="name" name="answer[]"></td>
<td>
<input type="checkbox" id="check" name="check[]" ></td>
<td><input type="button" value="Ajouter" " class="button"></td>
</tr>
</form>
我怎么能选择选定的答案!如果答案为真,如果不在数据库中的“正确”列中存储 0,则该想法太存储一个
我尝试通过这种方式通过 AJAX 处理数据
$(function()
$("#form").on("submit", function(event)
event.preventDefault();
$.ajax(
url: "test.php",
type: "post",
data: $(this).serialize(),
success: function(d)
alert(d);
);
);
);
);
【讨论】:
以上是关于使用 AJAX 将复选框值 1 如果选中,如果不是 0 传递给 PHP的主要内容,如果未能解决你的问题,请参考以下文章
如何根据复选框更新数据库值? jQuery/php/ajax
如何根据复选框更新数据库值? jQuery的/ PHP / AJAX
如何使用 jquery ajax 将选中复选框的值发送到另一个页面