как получить данные json в Intel XDK из файла php

#php #mysql #json #intel-xdk

# #php #mysql #json #intel-xdk

Вопрос:

Я написал php-код для выбора конкретной информации о пациенте, я использовал pdo для подключения к базе данных, результатом файла является формат json.

 {"success":1,"message":"patient info Available!","patient_info":[{"name":"Nora","gender":"M","email":"NouraSaeed@yahoo.com","Date":"2016-10-17"}]}
 

но когда я написал код js в intel xdk для отображения данных json, на экране не отображался вывод.Как я могу отобразить значение успеха или сообщения в xdk!

 <html>
<body>

<?php

require("config.inc.php");

$pid = $_GET["id"];
$query = " SELECT * FROM patient where PatientID=$pid";

try {
    $stmt = $db->prepare($query);
    $result = $stmt->execute();
} catch (PDOException $e) {
    $response["success"] = 0;
    $response["message"] = "Database Error1. Please Try Again!";
    die(json_encode($response));
}

$rows = $stmt->fetchAll();

if ($rows) {
    $response["success"] = 1;
    $response["message"] = "patient info Available!";
    $response["patient_info"] = array();

    foreach ($rows as $row) {
        $post = array();
        $post["name"] = $row["PName"];
        $post["gender"] = $row["Gender"];
        $post["email"] = $row["email"];
        $post["Date"] = $row["BDate"];
        array_push($response["patient_info"], $post);
    }

    echo json_encode($response);
} else {
    $response["success"] = 0;
    $response["message"] = "No patient_info Available!";
    die(json_encode($response));
}
?>
</body>
</html>
 

Этот код xdk:

 <!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <script type="text/javascript">
        function createXHR() {
            if (typeof XMLHttpRequest != "undefined")
                return new XMLHttpRequest();
            else
                return new ActiveXObject("Microsoft.XMLHttp");
        }

        function requestPatientInfo() {
            var pid = document.getElementById("pid").value;
            var oXmlHttp = createXHR();
            oXmlHttp.open("get", "http://localhost/hospital/GetPatientData2.php?id="   pid);
            oXmlHttp.onload = function () {
                if (oXmlHttp.readyState == 4) {
                    if (oXmlHttp.status == 200 || oXmlHttp.status == 304) {
                        var patients = json.parse(oXmlHttp.responseText);
                        divPatientInfo.innerHTML = patients.message;
                    }
                    else
                        divPatientInfo.innerHTML = oXmlHttp.statusText;
                }//end if 
            }; //end ready state
            oXmlHttp.send(null);
        }//end function requestPatientInfo
    </script>
</head>

<body>
Enter Patient ID to get All Information
<p>
    Patient ID: <input type="number" id="pid"/>
</p>
<input type="button" value="Get Info" onClick="requestPatientInfo();"/>
<div id="divPatientInfo"></div>
<iframe name="hiddenFrame" style="width:0 ; height:0"></iframe>

</body>
</html>
 

Ответ №1:

Похоже, вы не определили divPatientInfo .. измените следующим образом

 var divPatientInfo = document.getElementById('divPatientInfo'); 
    if(oXmlHttp.readyState==4){
                      if(oXmlHttp.status==200 || oXmlHttp.status== 304 ){
                           var patients= json.parse(oXmlHttp.responseText);  
                           divPatientInfo.innerHTML=patients.message;          
                      }
                       else 
                         divPatientInfo.innerHTML=oXmlHttp.statusText;

                   }//end if
 

Если не решено, проверьте один раз ответ ajax с помощью firebug, если возможно, вставьте здесь, чтобы помочь больше.

Комментарии:

1. поступает ли ответ в firebug? если вы можете вставить этот ответ сюда … и попробуйте один раз следующий код, который является базой jquery .. функция requestPatientInfo() { var id = $(‘#pid’).val(); $.ajax({ url:localhost/hospital/GetPatientData2.php , данные:{id:id}, Тип данных: json, },успех:функция (данные){ $(‘#divPatientInfo’).html(data.message); }); } Убедитесь, что включена библиотека jquery code.jquery.com