#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