我的JSON.parse代码行未正常运行。有任何想法吗?在运行函数' showconsultationdata'时,应显示2个警告框,但我的第2个警报框不会运行,因为程序的运行始终在JSON.parse行停止。 这是我的AJAX脚本。
function showconsultationdata(str) { //face e.g and checkboxes for that date selected.
var xmlhttp;
if (str == "") {
document.getElementById("txtHint2").innerHTML = "";
return;
} else {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
alert("hi");
document.getElementById("txtHint2").innerHTML = xmlhttp.responseText;
var a = JSON.parse(xmlhttp.responseText);
document.getElementById("test").value=a.first;
alert("bye");
}
}
xmlhttp.open("GET","BAConsultRecordsAJAX.php?q="+str,true);
xmlhttp.send();
}
}
这是我的BAConsultRecordsAJAX.php文件。
<?php
session_start();
include('Config/Js.php');
$q = $_GET['q'];
$consult="SELECT * FROM Counsel where nric='$_SESSION[nric]' and dateconsulted='$q'";
$consultresult = mysqli_query($dbconn,$consult);
while($row = mysqli_fetch_array($consultresult)) {
$queryResult[] = $row['skincareremarks'];
$queryResult[] = $row['skinconditionremarks'];
}
$skincareremarks = $queryResult[0];
$skinconditionremarks = $queryResult[1];
echo json_encode(array('first'=>$skincareremarks,'second'=>$skinconditionremarks));
哦,我试着提醒xmlhttp.responseText,这就是我得到的。 如您所见,在最后一行中,它正确显示了响应文本值。但我不确定为什么它显示我的javascripts svc
答案 0 :(得分:0)
但我不确定为什么它会显示我的javascripts svc
include('Config/Js.php');
因为您收录的脚本可能会回应它们吗?那些将HTML添加到响应中导致它变为无效的JSON。
答案 1 :(得分:0)
我设法通过过滤掉我的xmlhttp.responseText中显示的内容来解决问题。
在我的BAConsultRecordsAJAX.php文件中,我做到了。
echo "<div id='test1'>";
echo json_encode(array('first'=>$skincareremarks,'second'=>$skinconditionremarks));
echo "</div>";
我给这个输出一个名为&#39; test1&#39;。
的div然后,在我的主文件的AJAX脚本中,我做到了。
var a = JSON.parse($(xmlhttp.responseText).filter('#test1').html());
document.getElementById("test").value=a.first;
基本上,它会过滤掉其余的xhtmlhttp.responseText输出,并只选择div id =&#39; test1&#39;。
希望这也可以帮助那些有这个问题的人。