这是我在文件' baceconsult .php'中的表行点击函数。点击,showconsultationdata功能将运行。
$(document).ready(function(){ //table row click
}).on('click','.consultclick tr',function(e){
if(e.target.tagName === "TD"){
$(".consultclick tr").removeClass("highlight");
$(e.target).parent().addClass("highlight");
}
var dateconsulted = $(this).attr('value');
alert(dateconsulted);
showconsultationdata(dateconsulted);
});
这是我的ajax脚本
function showconsultationdata(str) {
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) {
document.getElementById("txtHint2").innerHTML = xmlhttp.responseText;
}
};
xmlhttp.open("GET","BAConsultRecordsAJAX.php?q="+str,true);
xmlhttp.send();
}
}
这里是另一个名为"BAConsultRecordsAJAX.php"的php文件,我在其中放置了showconsultationdata的ajax。
session_start();
require('Config/Setup.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)) {
$skincareremarks=$row['skincareremarks'];
$skinconditionremarks=$row['skinconditionremarks'];
}
在表行单击时,应该更新$skincareremark和$ skinconditioncomments。这些值将显示在"bacconsult .php"页面的文本框中。我该怎么做呢?
所以,我使用JSON遵循@Jeff的方法。然而,我意识到xmlhttp。responseText不仅显示我的JSON编码的代码,但也我的javascript,这就是为什么JSON。解析方法无法正常运行。然后我做了以下操作:
在我的BAConsultRecordsAJAX.php文件中,我这样做了。
echo "<div id='test1'>";
echo json_encode(array('first'=>$skincareremarks,'second'=>$skinconditionremarks));
echo "</div>";
我给这个输出一个名为'test1'的div。
然后,在主文件的AJAX脚本中,我这样做了。
var a = JSON.parse($(xmlhttp.responseText).filter('#test1').html());
document.getElementById("test").value=a.first;
基本上,它过滤掉了xhtmlhttp的其余部分。responseText输出,并只选择id='test1'的div中的内容。