这是我在文件'BAConsult.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'];
}
在表格行上单击,应更新$ skincareremarks和$ skinconditionremarks。这些值将显示在“BAConsult.php”页面的文本框中。我怎么能这样做?
答案 0 :(得分:0)
所以,我使用JSON跟随@ Jeff的方法。但是,我意识到xmlhttp.responseText不仅显示了我的JSON编码代码,而且还显示了我的javascript,这就是JSON.parse方法无法正常运行的原因。然后我做了以下事情:
在我的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输出,并只选择div中id ='test1'的内容。
希望这也可以帮助那些有这个问题的人。