Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从PHP文件中提取要显示的单选按钮值_Javascript_Php_Jquery_Html - Fatal编程技术网

Javascript 从PHP文件中提取要显示的单选按钮值

Javascript 从PHP文件中提取要显示的单选按钮值,javascript,php,jquery,html,Javascript,Php,Jquery,Html,这是我第一次发帖,所以如果我错过了什么或者我弄错了什么,我向你道歉。我也看过其他帖子,虽然有些帖子非常相似,但我不认为这是我想要的答案。我对AJAX也很陌生,虽然这段代码并没有真正利用很多AJAX,但我认为任何对这个问题有帮助的见解都将不胜感激 我试图创建一个测验模板,在选择单选按钮并单击“答案”按钮后,使用AJAX调用PHP文件中的数据 一般的想法是,在用户阅读问题后,他们选择一个单选按钮并单击“答案”按钮,页面底部会填充正确或不正确的字符串。用文本和css填充它很容易,但我的问题在于提取正确

这是我第一次发帖,所以如果我错过了什么或者我弄错了什么,我向你道歉。我也看过其他帖子,虽然有些帖子非常相似,但我不认为这是我想要的答案。我对AJAX也很陌生,虽然这段代码并没有真正利用很多AJAX,但我认为任何对这个问题有帮助的见解都将不胜感激

我试图创建一个测验模板,在选择单选按钮并单击“答案”按钮后,使用AJAX调用PHP文件中的数据

一般的想法是,在用户阅读问题后,他们选择一个单选按钮并单击“答案”按钮,页面底部会填充正确或不正确的字符串。用文本和css填充它很容易,但我的问题在于提取正确的文本

以下是设置表单提交的HTML代码块:

<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");
        });
    });
});