实时更新php变量并同时显示文本框中的值

时间:2016-06-27 12:09:40

标签: php jquery html ajax

这是我在文件'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”页面的文本框中。我怎么能这样做?

1 个答案:

答案 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'的内容。

希望这也可以帮助那些有这个问题的人。