Php OnChange AJAX似乎与动态值有关
因此,我的计划是在一个页面中显示所有项目及其特定集合,该集合引用Php OnChange AJAX似乎与动态值有关,php,jquery,ajax,Php,Jquery,Ajax,因此,我的计划是在一个页面中显示所有项目及其特定集合,该集合引用$\u GET。一切都很好,它显示了所有内容,但当我想使用onchange查询提醒所有id时,似乎项目没有重复。我使用javascript上的alert来检查数据库中的id和其他对象 <?php $quiz_item = $_GET['quiz_item'] ; $item =0; $quiz_sql = "SELECT * from quizmultiple where quiz_set ='$quiz_item'";
$\u GET
。一切都很好,它显示了所有内容,但当我想使用onchange查询提醒所有id时,似乎项目没有重复。我使用javascript上的alert来检查数据库中的id和其他对象
<?php
$quiz_item = $_GET['quiz_item'] ;
$item =0;
$quiz_sql = "SELECT * from quizmultiple
where quiz_set ='$quiz_item'";
$quiz_query = mysqli_query($con,$quiz_sql);
while($quiz_row =
mysqli_fetch_assoc($quiz_query)) {
?>
<div class='itemcontainer'>
<div class="card" style="width:40%;">
<div class="card-header">
Question #: <?php $item++; echo $item;
?>
</div>
<div class="card-body">
<blockquote class="blockquote mb-0">
<p><?php echo $quiz_row['question']; ?>
</p>
</blockquote>
</div>
<div style="margin:5px;">
<ul class="list-group list-group-flush"
style="width: 90%;">
<form id='form_question'>
<li class="list-group-item">
<input type="radio" id="choice_user"
class="form_question" name="gender"
value="<?php echo $quiz_row['choice_a'];?
>">
</li>
<li class="list-group-item">
<input type="radio" id="choice_user"
class="form_question" name="gender"
value="<?php echo $quiz_row['choice_b'];?
>">
</li>
<li class="list-group-item">
<input type="radio" id="choice_user"
class="form_question" name="gender"
value="<?php echo $quiz_row['choice_c'];?
>">
</li>
<li class="list-group-item">
<input type="radio" id="choice_user"
class="form_question" name="gender"
value="<?php echo $quiz_row['choice_d'];?
>">
</li>
<input type="text" id="number_id" value="<?
php echo $quiz_row['id'];?>"/>
<input type="text" id="true_answer"
value="<?php echo
$quiz_row['true_answer'];?>"/>
</form>
</ul>
</div>
</div>
</div>
<?php
}
?>
<script>
$(document).ready(function() {
$(".form_question").change(function(){
var choice_final = $('#choice_user').val();
var id_question = $('#number_id').val();
$.ajax({
url:"checkanswers.php",
method:"POST",
data: {id:id_question,choice:choice_final},
success:function(data){
alert(data);
}
});
});
});
</script>
<?php
if(isset($_POST)) {
$id = $_POST['id'];
$choice = $_POST['choice'];
echo $id;
echo $choice;
}
?>
-
问题是,循环中的每个问题都使用相同的名称和ID。您需要将问题ID添加到所有这些内容中,以使它们不同。所有其他ID都应该是类
然后,当用户回答一个问题时,您需要获得该答案的值,以及它所属问题的ID。您可以使用DOM导航函数来实现这一点
<?php
$quiz_item = $_GET['quiz_item'] ;
$item =0;
$quiz_sql = "SELECT * from quizmultiple
where quiz_set ='$quiz_item'";
$quiz_query = mysqli_query($con,$quiz_sql);
while($quiz_row = mysqli_fetch_assoc($quiz_query)) {
?>
<div class='itemcontainer'>
<div class="card" style="width:40%;">
<div class="card-header">
Question #: <?php $item++; echo $item; ?>
</div>
<div class="card-body">
<blockquote class="blockquote mb-0">
<p><?php echo $quiz_row['question']; ?>
</p>
</blockquote>
</div>
<div style="margin:5px;">
<ul class="list-group list-group-flush" style="width: 90%;">
<form>
<li class="list-group-item">
<input type="radio" class="choice_user form_question" name="gender_<?php echo $quiz_row['id'];?>" value="<?php echo $quiz_row['choice_a'];?>">
</li>
<li class="list-group-item">
<input type="radio" class="choice_user form_question" name="gender_<?php echo $quiz_row['id'];?>" value="<?php echo $quiz_row['choice_b'];?>">
</li>
<li class="list-group-item">
<input type="radio" class="choice_user form_question" name="gender_<?php echo $quiz_row['id'];?>" value="<?php echo $quiz_row['choice_c'];? >">
</li>
<li class="list-group-item">
<input type="radio" class="choice_user form_question" name="gender_<?php echo $quiz_row['id'];?>" value="<?php echo $quiz_row['choice_d'];? >">
</li>
<input type="text" class="number_id" value="<?php echo $quiz_row['id'];?>"/>
<input type="text" class="true_answer" value="<?php echo $quiz_row['true_answer'];?>"/>
</form>
</ul>
</div>
</div>
</div>
<?php
}
?>
<script>
$(document).ready(function() {
$(".form_question").change(function(){
var choice_final = $(this).val();
var id_question = $(this).closest('form').find('.number_id').val();
$.ajax({
url:"checkanswers.php",
method:"POST",
data: {id:id_question,choice:choice_final},
success:function(data){
alert(data);
}
});
});
});
</script>
<?php
if(isset($_POST)) {
$id = $_POST['id'];
$choice = $_POST['choice'];
echo $id;
echo $choice;
}
?>
-
问题是,循环中的每个问题都使用相同的名称和ID。您需要将问题ID添加到所有这些内容中,以使它们不同。所有其他ID都应该是类
然后,当用户回答一个问题时,您需要获得该答案的值,以及它所属问题的ID。您可以使用DOM导航函数来实现这一点
<?php
$quiz_item = $_GET['quiz_item'] ;
$item =0;
$quiz_sql = "SELECT * from quizmultiple
where quiz_set ='$quiz_item'";
$quiz_query = mysqli_query($con,$quiz_sql);
while($quiz_row = mysqli_fetch_assoc($quiz_query)) {
?>
<div class='itemcontainer'>
<div class="card" style="width:40%;">
<div class="card-header">
Question #: <?php $item++; echo $item; ?>
</div>
<div class="card-body">
<blockquote class="blockquote mb-0">
<p><?php echo $quiz_row['question']; ?>
</p>
</blockquote>
</div>
<div style="margin:5px;">
<ul class="list-group list-group-flush" style="width: 90%;">
<form>
<li class="list-group-item">
<input type="radio" class="choice_user form_question" name="gender_<?php echo $quiz_row['id'];?>" value="<?php echo $quiz_row['choice_a'];?>">
</li>
<li class="list-group-item">
<input type="radio" class="choice_user form_question" name="gender_<?php echo $quiz_row['id'];?>" value="<?php echo $quiz_row['choice_b'];?>">
</li>
<li class="list-group-item">
<input type="radio" class="choice_user form_question" name="gender_<?php echo $quiz_row['id'];?>" value="<?php echo $quiz_row['choice_c'];? >">
</li>
<li class="list-group-item">
<input type="radio" class="choice_user form_question" name="gender_<?php echo $quiz_row['id'];?>" value="<?php echo $quiz_row['choice_d'];? >">
</li>
<input type="text" class="number_id" value="<?php echo $quiz_row['id'];?>"/>
<input type="text" class="true_answer" value="<?php echo $quiz_row['true_answer'];?>"/>
</form>
</ul>
</div>
</div>
</div>
<?php
}
?>
<script>
$(document).ready(function() {
$(".form_question").change(function(){
var choice_final = $(this).val();
var id_question = $(this).closest('form').find('.number_id').val();
$.ajax({
url:"checkanswers.php",
method:"POST",
data: {id:id_question,choice:choice_final},
success:function(data){
alert(data);
}
});
});
});
</script>
<?php
if(isset($_POST)) {
$id = $_POST['id'];
$choice = $_POST['choice'];
echo $id;
echo $choice;
}
?>
-
id必须是唯一的,不能有多个id=“choice\u user”
@imu,这是一个输入错误。它与动态值无关$(“#choice_user”).val()
将只获取第一个按钮的值,而不是所选按钮的值。是的,它确实会像您所说的那样获取第一个ID的值。我不认为这是一个重复的问题,因为它有不同的内容和问题本身@巴玛,谢谢你我误解了吗?除了获取单选按钮的值,您还有什么问题?id必须是唯一的,不能有多个id=“choice\u user”
@imu,这是一个输入错误。它与动态值无关$(“#choice_user”).val()
将只获取第一个按钮的值,而不是所选按钮的值。是的,它确实会像您所说的那样获取第一个ID的值。我不认为这是一个重复的问题,因为它有不同的内容和问题本身@巴玛,谢谢你我误解了吗?除了获取单选按钮的值之外,您还有什么问题?谢谢。它以某种方式解决了它的逻辑部分。var id_-question=$(this).nestest('form').find('number_-id').val();帮助我很多,但显示出一个错误;$_POST['ID']的ID的未识别索引;我有一个打字错误,class=
而不是class=
。哦,是的,你在收音机上复制了这个课程,但一切都很好。非常感谢。是的,我正在将id
更改为class
,但是忘记已经有一个类了。谢谢。它以某种方式解决了它的逻辑部分。var id_-question=$(this).nestest('form').find('number_-id').val();帮助我很多,但显示出一个错误;$_POST['ID']的ID的未识别索引;我有一个打字错误,class=
而不是class=
。哦,是的,你在收音机上复制了这个课程,但一切都很好。非常感谢。对,我正在将id
更改为class
,但忘记已经有一个类了。