如何在不互相干扰的情况下使用2个$ _POST?

时间:2018-12-30 00:35:46

标签: javascript php

我是Web开发的新手,我试图理解为什么当我使用2 $ _POST时,第二个与第一个串联。这导致我收到一个错误:

  

未捕获的SyntaxError:JSON中位置11处的数字意外       在JSON.parse()       在XMLHttpRequest.AJAX_handle_response(HangManMath.js:77)

任何与该代码有关的其他技巧以及可以帮助我更好地理解AJAX编程的资源都将受到赞赏。

我对PHP不太了解,但是我已经尝试了一切。我的代码在下面。

$_POST = json_decode(file_get_contents('php://input'), true);

$response = "";

if (isset($_POST['guess']) && $_POST['guess'] !== '') {
    $guess = $_POST['guess'];

    if ($guess === 3)) {
        $response = "Correct";
    }
    else {
        $response = "Incorrect";
    }
    $response = json_encode($response);

    header('Content-Type: application/json');

    echo $response;
}




$_POST = json_decode(file_get_contents('php://input'), true);

if (empty($_POST["current_number"])) {
    if($_POST["response-p"] === "Correct!"){
    $current_number = 2; // $_POST["current_number"];
    $current_number = intval($current_number);
    $current_number++;
}
else {
    $current_number = 1;//$current_number;
}
$current_number = json_encode($current_number);

echo $current_number;
}

// JAVASCRIPT

function Current_question(current, response){
current_number = document.getElementById(current).value;
response_p = document.getElementById(response).value;
console.log("Response: " + response_p);
console.log("Element id: " + current_number);

let req1 = new XMLHttpRequest();
req1.addEventListener("load", Current_question_status);
req1.open("POST", "HangManMath.php", true);
req1.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
req1.send(JSON.stringify(current_number, response_p));

}
function Current_question_status(){
console.log("Handeling Current_Question");
let current_number = this.responseText;
console.log("Before JSON parse..." + current_number);
current_number = JSON.parse(current_number);
console.log("After JSON parse..." + current_number);
current_number = parseInt(current_number);
if(AJAX_handle_response === "Correct"){
    current_number++;
}
document.getElementById("current_number").innerHTML = current_number;
}



// Start an AJAX request with a JSON payload, 
// sent via the POST http method to the server
// script (process_guess.php).
function AJAX_start(payload){
    console.log("Sending new value to the server.");
    console.log(payload);
    let req = new XMLHttpRequest();
    req.addEventListener("load", AJAX_handle_response);
    req.open("POST", "HangManMath.php", true);
    req.setRequestHeader("Content-Type", "application/json;charset=UTF- 
    8");
    req.send(JSON.stringify(payload));
}


// Handles the server's response, when it is received.
function AJAX_handle_response(){
console.log("Handling server response: ");
let payload = this.responseText;

console.log("... Response text: " + payload);
if(payload === "") 
    return false;
payload = JSON.parse(payload);
// decode the guess and result from the server
let result;

if(payload === "Incorrect"){
    result = "Incorrect!";
}
else{
    result = "Correct!";
}
document.getElementById("response-p").innerHTML = result;

// Now we want to clear the input box as well, 
// to make room for the next guess.
document.getElementById("guess").value = "";

return result;
}

我希望一个POST为“正确”,另一个POST为“ 3”

我实际上正在“正确” 3

0 个答案:

没有答案