2016-11-06 2 views
-1

나는 쿼리를 실행하는 PHP 파일에 정보를 보내고 있지만 동시에 그 정보 파일에서 일부 정보를 가져 오려고합니다. PHP 파일을 잘 실행하지만 json_encoded 개체를 가져올 수 없습니다.자바 스크립트를 사용하여 PHP 파일에서 정보를 보내고받는 데 문제가 있습니다

function open_close(){ 
    var status = encodeURIComponent(SelectedTicket["Status"]); 
    var ticketNum = encodeURIComponent(SelectedTicket["TicketNum"]); 
    var info = "Status="+status+"&TicketNum="+ticketNum; 
    var http3 = createAjaxRequestObject(); 

    if (http3.readyState == 4) { 
     if (http3.status == 200){ 
      alert("Ticket Updated!"); //This never gets hit      
      getUpdatedTicket(JSON.parse(http3.responseText)); 
     } 
    } 

    http3.open("POST", "openClose.php", true); 
    http3.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    http3.send(info); 
} 

PHP 파일

<?php 
    include("config.php"); 
    session_start(); 

    $status = $_POST["Status"]; 
    $num = $_POST["TicketNum"]; 
    $newStatus = " "; 
    if(strcmp($status, "Open") == 0){ 
     $newStatus = "Closed"; 
    } 
    elseif(strcmp($status, "Closed") == 0){ 
      $newStatus = "Open"; 
    } 

    $sql = "UPDATE tickets SET Status = \"$newStatus\" where TicketNum = $num "; 
    $r = $conn ->query($sql) or trigger_error($conn->error."[$sql]"); 

    $sql = "SELECT * FROM tickets where TicketNum = $num"; 
    $result = $conn->query($sql); 
    while($row = $result->fetch_assoc()){ 
     $data[] = $row; 
    } 

    echo json_encode($data); 

?> 

가 어떻게이 json_encoded를 검색 할 수있는 테이블을 문자열과 번호를 받아 업데이트 : 문자열과 PHP 파일에 번호를 전송

자바 스크립트 기능 같은 자바 스크립트 함수에있는 객체?

+0

에서 데이터를 얻을 후 요청이 완료되면 알아야 할 readyState 리스너를해야하고, 것입니다. AJAX에 대한 자습서를 통해이를 설명해야합니다. – Barmar

답변

1

당신은 서버에서 응답이 http3.responseText``에있는 responseText

function open_close() { 
    var status = encodeURIComponent(SelectedTicket["Status"]); 
    var ticketNum = encodeURIComponent(SelectedTicket["TicketNum"]); 
    var info = "Status=" + status + "&TicketNum=" + ticketNum; 
    var http3 = createAjaxRequestObject(); 

    http3.onreadystatechange = function() { 
     if (http3.readyState == 4) { 
      if (http3.status == 200) { 
       console.log(http3.responseText); // <- it's there 
      } 
     }  
    } 

    http3.open("POST", "openClose.php", true); 
    http3.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    http3.send(info); 
} 
관련 문제