实时更新php变量,同时在文本框中显示值


Live update php variable and simultaneously, show the value in a textbox

这是我在文件' 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中的内容。