Javascript 从PHP文件中提取要显示的单选按钮值
这是我第一次发帖,所以如果我错过了什么或者我弄错了什么,我向你道歉。我也看过其他帖子,虽然有些帖子非常相似,但我不认为这是我想要的答案。我对AJAX也很陌生,虽然这段代码并没有真正利用很多AJAX,但我认为任何对这个问题有帮助的见解都将不胜感激 我试图创建一个测验模板,在选择单选按钮并单击“答案”按钮后,使用AJAX调用PHP文件中的数据 一般的想法是,在用户阅读问题后,他们选择一个单选按钮并单击“答案”按钮,页面底部会填充正确或不正确的字符串。用文本和css填充它很容易,但我的问题在于提取正确的文本 以下是设置表单提交的HTML代码块:Javascript 从PHP文件中提取要显示的单选按钮值,javascript,php,jquery,html,Javascript,Php,Jquery,Html,这是我第一次发帖,所以如果我错过了什么或者我弄错了什么,我向你道歉。我也看过其他帖子,虽然有些帖子非常相似,但我不认为这是我想要的答案。我对AJAX也很陌生,虽然这段代码并没有真正利用很多AJAX,但我认为任何对这个问题有帮助的见解都将不胜感激 我试图创建一个测验模板,在选择单选按钮并单击“答案”按钮后,使用AJAX调用PHP文件中的数据 一般的想法是,在用户阅读问题后,他们选择一个单选按钮并单击“答案”按钮,页面底部会填充正确或不正确的字符串。用文本和css填充它很容易,但我的问题在于提取正确
<form action="data.php" method="post" id="q1">
<input type="radio" name="answer1" value="1a" id="1q"> A.
<br>
<input type="radio" name="answer1" value="1b" id="1q"> B.
<br>
<input type="radio" name="answer1" value="1c" id="1q"> C.
<br>
<input type="radio" name="answer1" value="1d" id="1q"> D.
<br>
<input name="submit1" id="answer" type="button" title="abutton" value="ANSWER">
</form>
1d包含正确的答案,当您选择任何单选按钮并按下“答案”时,它仍然显示正确的文本
但当我尝试这样做时:
{answer1:'1d',answer1:'1a',answer1:'1b',answer1'1c'},
选择单选按钮1a、1b或1c后应填充的不正确文本会覆盖应填充的文本,即使选择单选按钮1d也是如此
从中调用JS代码的PHP代码:
<?php
$correct = "Correct";
$incorrect = "Incorrect";
if (isset($_POST['answer1']))
{
if ($_POST['answer1'] === '1d')
{
print $correct1;
}
elseif ($_POST['answer1'] === '1b')
{
print $incorrect1;
}
elseif ($_POST['answer1'] ==='1c')
{
print $incorrect1;
}
elseif ($_POST['answer1'] === '1a')
{
print $incorrect1;
}
};
?>
再次重申,对这个问题的任何见解都将不胜感激!如果我需要澄清什么,请告诉我。谢谢 首先,id应该始终是唯一的。因此,请删除或更改收音机输入的id。
然后,您需要更改ajax请求以发送选定的输入电台,如下所示:
$(document).ready(function() {
$("#answer").click(function() {
var answer = $("input[name=answer1]:checked").val();
$.post("data.php", {answer1: answer}, function(data){
$("#text1").empty();
$("#text1").append(data);
$("#panel").fadeIn("slow");
});
});
});
因为在您的代码中,您从未将所选的收音机发送到php页面。如果在这一行中只发送1d{answer1:'1d},那么php页面将始终返回正确的文本,即使您选中了另一个单选按钮。
我不知道jQuery fadeDown方法。只有淡出或淡出。
另外,在data.php中,$correct1和$incorrect1是未定义的。所以echo$correct或$correct。首先,id应该始终是唯一的。因此,请删除或更改收音机输入的id。
然后,您需要更改ajax请求以发送选定的输入电台,如下所示:
$(document).ready(function() {
$("#answer").click(function() {
var answer = $("input[name=answer1]:checked").val();
$.post("data.php", {answer1: answer}, function(data){
$("#text1").empty();
$("#text1").append(data);
$("#panel").fadeIn("slow");
});
});
});
因为在您的代码中,您从未将所选的收音机发送到php页面。如果在这一行中只发送1d{answer1:'1d},那么php页面将始终返回正确的文本,即使您选中了另一个单选按钮。
我不知道jQuery fadeDown方法。只有淡出或淡出。
另外,在data.php中,$correct1和$incorrect1是未定义的。所以回显$correct或$correct。页面上一次只会有一个问题,所以页面上只会有四个单选按钮?是的,一次只有一个问题,有四个单选按钮。您说过您对这一行有问题{answer1:'1d'}:1d包含正确的答案,当您选择任何单选按钮并按“答案”时,它仍然显示正确的文本。这很正常,您从不将所选的收音机发送到php页面。请正确地查看我的anwser,并像我说的那样更改ajax功能。您不能多次使用相同的id,因为您为每个收音机使用了1q,因为收音机名称必须相同,而不是id;页面上一次只会有一个问题,所以页面上只会有4个单选按钮吗?是的,一次只有一个问题,有4个单选按钮。您说这行有问题{answer1:'1d'}:1d包含正确答案,当您选择任何单选按钮并按下答案时,它仍然显示正确的文本。这很正常,您从不将所选的收音机发送到php页面。请正确地查看我的anwser,并像我说的那样更改ajax功能。您不能多次使用相同的id,因为您为每个收音机使用了1q,因为收音机名称必须相同,而不是id;是的,我在编辑某些信息时犯了一个错误,谢谢你指出这一点!jQuery代码应该是fadeIn。你没有犯一个错误,但是犯了五个错误。但您的主要问题是Ajax post函数。所以用我给你的函数修改你的代码,告诉我它是否有效。是的,你是对的。我更改了代码,现在可以使用了。我对$correct和$correct变量进行了以下更改。非常感谢你的帮助!是的,我在编辑某些信息时犯了一个错误,谢谢你指出这一点!jQuery代码应该是fadeIn。你没有犯一个错误,但是犯了五个错误。但您的主要问题是Ajax post函数。所以用我给你的函数修改你的代码,告诉我它是否有效。是的,你是对的。我更改了代码,现在可以使用了。我对$correct和$correct变量进行了以下更改。非常感谢你的帮助!
$(document).ready(function() {
$("#answer").click(function() {
var answer = $("input[name=answer1]:checked").val();
$.post("data.php", {answer1: answer}, function(data){
$("#text1").empty();
$("#text1").append(data);
$("#panel").fadeIn("slow");
});
});
});