同一页上的AJAX调用$ _POST变量为空

时间:2018-07-18 17:57:51

标签: php html ajax post

我刚刚阅读了很多有关此的主题,但仍然无法使它起作用。将其上传到实时服务器,并在XAMPP的localhost上尝试,仍然发生相同的情况。

在开发人员工具/萤火虫上,我可以看到结果,在网络/ XHR上也是如此。任何帮助表示赞赏。

我想将单选按钮的提交值与php变量进行比较(如index.php所示),在控制台上可以按预期运行,但在我的浏览器窗口中无法运行。

html.php

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>

</head>
<body>

          <form name="curso_activo" id="form_preguntas" method="POST" action="" >
              <p> option1 </p>
              <input id="input_1" type="radio" name="html1" value="a">
              <span class="checkmark"></span>


              <p> option2 </p>
              <input id="input_2" type="radio" name="html1" value="b">
              <span class="checkmark"></span>


              <p> option3 </p>
              <input id="input_3" type="radio" name="html1" value="c">
              <span class="checkmark"></span>


              <p> option4 </p>
              <input id="input_4" type="radio" name="html1" value="d">
              <span class="checkmark"></span>


            <div class="respuesta_submit">
            <input type="submit"  id="Respuesta_send" class="button_submit"  value="Enviar" name="Enviar_respuesta">
            </div>

          </form>


  <script src="https://code.jquery.com/jquery-3.1.1.min.js"> </script>
  <script src="ajax.js"></script>

</body>
</html>

ajax.js

$("#form_preguntas").submit(function (e) {
    e.preventDefault();
    var question = $("#input_1").attr('name');
    var answer = $("input[name=" + question + "]:checked").val();

    $.ajax({
        type: 'POST',
        data: {'param': answer},
        success: function (data,) {
            console.log(data);
            alert(question);

        },
        error: function () {
            console.log('error');
        }
    });
});

index.php

    <?php  
require"html.php";

$correct_answer = 'b';

if ($_POST['param'] == $correct_answer) {
    echo "Correct";
}

?>

1 个答案:

答案 0 :(得分:0)

您的javascript中可能的一种解决方案,检查响应是否是您期望的,然后告诉用户:

...

success: function (data,) {
  if (data == 'success'){
     //do something here
     $('#someDiv').html('success!');
  }
},

...