javascript - 使用ajax执行php插入功能

标签 javascript php html ajax

我有一个html表单为 <input type='radio'>

<form action="results.php" method="post" enctype="multipart/form-data" onsubmit='return false'><br>
            <p>Have you ever turned a client down?</p>
            <div id="q_1">
                <input type="radio" name="q1" id="q_1_yes" value="yes">
                <label for="q_1_yes">Yes</label>
                <input type="radio" name="q1" id="q_1_no" value="no">
                <label for="q_1_no">No</label>
            </div><br>
            <p>Are you comfortable with failure?</p>
            <div id="q_1">
                <input type="radio" name="q2" id="q_2_yes" value="yes">
                <label for="q_2_yes">Yes</label>
                <input type="radio" name="q2" id="q_2_no" value="no">
                <label for="q_2_no">No</label>
            </div><br>
            <input type="submit" onclick='return handleClick();' name="sub_eit" id="sub_eit" value="Submit">
</form>

我有一个javascript function检查值为“yes”的单选按钮数量是否大于值为“no”的单选按钮数量,如下

function handleClick()
{
var amountYes = 0;
for(var i = 1; i <= 4; i++) {
    var radios = document.getElementsByName('q'+i);
    for(var j = 0; j < radios.length; j++) {
        var radio = radios[j];
        if(radio.value == "yes" && radio.checked) {
            amountYes++;
        }
    }
}
//code to perform php insert function if yes is less than or equal to 2 
if (amountYes <= 2) {
   $.ajax({
       type: "POST",
       url: "results.php",
       dataType: "json",
       success: function (response) {
       }
   });
} else {
    alert("Correct Responses: " + amountYes);
}
}

结果.php

if (isset($_POST['q_1']) && isset($_POST['q_2']))
{
$q_1 = $_POST['q_1'];
$q_2 = $_POST['q_2'];

$yes = "yes";
$no = "no";

$id = $_SESSION['id'];
$u_name = $_SESSION['uname'];

    $recommend = "Executive";

    $osql =<<< EOF
INSERT INTO results (id, recomend, u_name, status) VALUES ('$id', '$recommend', '$u_name', '1');
EOF;
    $ret = $db->exec($osql);
}

但是ajax代码似乎不起作用。请问这是什么问题。在此先感谢您的帮助。高度赞赏

最佳答案

您已在 ajax 请求中包含发布数据。

 $.ajax({
  type: 'POST',
  url: 'results.php',
  data: $('form').serialize(),
  dataType: 'json',
  success: function( response){
     console.log( 'the feedback from your result.php: ' + response);
  }
});

并且在 result.php 中,您必须将 $_POST['q_1'] 重命名为 _POST['q1'] 等等。 q1 和 q2 是您输入 radio 的名称。

关于javascript - 使用ajax执行php插入功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43680511/

相关文章:

javascript - Outlook AddIn : How to show console. 使用 Outlook 桌面登录?

php - 如何使用参数和回调从 PHP 调用 JSON Web 服务?

javascript - 切换 innerHTML

javascript - 从多个克隆的 div 中获取特定的 h3

javascript - JQuery 自动完成选择功能仅完成一项

Javascript - 等待数组完成填充

javascript - 上传并播放音频文件JS

javascript - 使用PHP和JavaScript的幻灯片放映

php - 为什么 PHP 似乎无法正确评估此条件?

html - 响应式 iFrame