AJAX / PHP에서 응답 받기

아담 맥 거크

을 처음 사용하는 동안 AJAX이것이 제대로 작동하지 않는 이유를 모르겠습니다. 클릭 이벤트 리스너를 통해 편집 가능한 테이블이 있고 엔터 키의 키 누름을 수신하는 또 다른 이벤트 리스너가 있으며 발생하면 다른 변수를 가져와 AJAX 게시 요청을 서버에 보냅니다. 그러나 Enter 키를 누르면 아무 일도 일어나지 않습니다. 아무 일도 일어나지 않는다는 것은 서버의 PHP 기능이 나를 다른 곳으로 안내하는 대신 내가 있던 페이지에 머물러 있다는 것을 의미합니다. 이상한 점은 내 ajax.send(vars), 내가 console.logged 내 ajax객체를 로그 아웃 하고 응답에 HTML 페이지가 제공되는
것으로 나타 났지만, 1. 내 ID, loc 또는 열 값이 비어있는 경우 얻을 수있는 응답을 보여 주었다는 것입니다. 나는 그 변수를 로그 아웃했지만 그렇지 않았습니다)
2. 해당 페이지가 제공되지 않았습니다. ajax 객체는 응답을 보여 주었지만 나 (최종 사용자)는 그 응답을 보지 못했습니다.
내 JavaScript는 다음과 같습니다.

        index.addEventListener("keypress", function(e){
        var key = e.keyCode;
            if (key === 13) {
                var entry = e.path[0].innerText;
                var tabID = e.path[1].id;
                var table = tabID.charAt(0);
                if (table === 'o') {
                    table = "otheraccounts";
                } if (table === 'wh') {
                    table = "wheatstoneaccounts";
                } if (table === 'wo') {
                    table = "wideorbitaccounts";
                }
                var ID = tabID.charAt(1);
                var column = e.path[0].id;
                var loc = e.path[3].getElementsByTagName("input").location.value;
                var ajax = new XMLHttpRequest();
                ajax.open("post", "../other/index.php?action=updateTable", true);
                ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                ajax.send(entry, table, ID, column, loc);
            }
    }, false)

그리고 여기 있습니다 PHP:

case 'updateTable':
    $column = filter_input(INPUT_POST, 'column', FILTER_SANITIZE_STRING);
    $ID = filter_input(INPUT_POST, 'ID', FILTER_SANITIZE_NUMBER_INT);
    $table = filter_input(INPUT_POST, 'table', FILTER_SANITIZE_STRING);
    $entry = filter_input(INPUT_POST, 'entry', FILTER_SANITIZE_STRING);
    $location = filter_input(INPUT_POST, 'loc', FILTER_SANITIZE_STRING);
    if (empty($ID) || empty($column) || empty($table)){
        $message = "<p class='message'>Stop tampering with my IDs!!</p>";
        $_SESSION['message'] = $message;
        header("Location: /radiosite/other/index.php?action=$location");
        exit;
    }
    $result = updateEntry($column, $ID, $table, $entry);
    if ($result === 1) {
        $message = "<p class='message'>The entry was successfully updated in the database</p>";
        $_SESSION['message'] = $message;
        header("Location: /radiosite/other/index.php?action=$location");
        exit;
    } else {
        $message = "<p class='message'>Nothing was added to the database</p>";
        $_SESSION['message'] = $message;
        header("Location: /radiosite/other/index.php?action=$location");    
        exit;            
    }
break;
Barmar

AJAX는 리디렉션 헤더를받을 때 브라우저를 리디렉션하지 않습니다. 그것은 응답 데이터를 얻기 위해 대체 URL로 이동하도록 지시합니다.

새 URL을 문자열로 반환하도록 PHP를 변경합니다. 다음과 같이 줄을 변경하십시오.

header("Location: /radiosite/other/index.php?action=$location");

에:

echo "/radiosite/other/index.php?action=$location";

그런 다음 자바 스크립트 코드에서 응답을 읽고 window.location리디렉션을 수행하도록 할당 할 수 있습니다 .

또한 POST 매개 변수를 제대로 보내지 않습니다. URL로 인코딩 된 문자열을 구성해야합니다.

var ajax = new XMLHttpRequest();
ajax.open("post", "../other/index.php?action=updateTable", true);
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajax.send('entry=' + encodeURIComponent(entry) + '&table=' + encodeURIComponent(table) + '&ID=' + encodeURIComponent(ID) + '&column=' + encodeURIComponent(column) + '&loc=' + encodeURIComponent(loc));
ajax.onload = function() {
    window.location = ajax.responseText.trim();
};

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Ajax 응답 받기

분류에서Dev

응답에서 2 입력 받기-jquery ajax 호출

분류에서Dev

Ajax 호출시 Servlet에서 응답 받기

분류에서Dev

Ajax에서 응답을받는 문제

분류에서Dev

AJAX가 PHP 응답을받지 못함

분류에서Dev

PHP에서 JSON 응답 받기

분류에서Dev

PHP에서 json 응답 받기

분류에서Dev

jQuery AJAX가 PHP에서 응답을받지 못함

분류에서Dev

Ajax 응답에서 imagepng 가져 오기

분류에서Dev

PHP에서 AJAX 응답으로 배열 보내기

분류에서Dev

PHP 페이지에서 ajax로 응답을 받고 있습니까?

분류에서Dev

erlang : SSL에서 응답 받기

분류에서Dev

CefSharp Javascript에서 응답 받기

분류에서Dev

axios에서 빈 응답 받기

분류에서Dev

qunit에서 recursion (-2) 응답 받기

분류에서Dev

ProximityKit KitUrl android에서 JSON 응답 받기

분류에서Dev

aspx 페이지에서 응답 받기

분류에서Dev

API에서 JSON으로 응답 받기

분류에서Dev

simple_udp_connection에서 응답 받기

분류에서Dev

MvcResult 개체에서 응답 받기

분류에서Dev

기존 DIV에 jQuery AJAX 응답 추가

분류에서Dev

Ajax 응답에서받은 다차원 배열 인쇄

분류에서Dev

jquery ajax 요청에서 응답을받는 방법

분류에서Dev

html 객체 내부에서 json 데이터를 가져오고 객체는 ajax에서 응답 받기

분류에서Dev

HTML에서 Jquery를 사용하여 Ajax 호출하고 다른 Html 페이지에 대한 응답 받기

분류에서Dev

Jquery-약속 / 지연된 Ajax 응답에서 HTTP 응답 읽기

분류에서Dev

PHP의 웹 서비스에서 XML 응답 받기

분류에서Dev

스크립트가 완료되기 전에 PHP에서 ajax로 응답 반환

분류에서Dev

jQuery를 사용하여 PHP에서 JSON 응답 받기

Related 관련 기사

뜨겁다태그

보관