2016-06-27 44 views
0

這是我在文件'BAConsult.php'中的表格行單擊功能。點擊後,showconsultationdata函數將運行。實時更新php變量並同時顯示文本框中的值

$(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' 我把放在那裏showconsultationdata的AJAX另一個PHP文件。

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

和你的ajax腳本? – madalinivascu

+0

@madalinivascu我剛更新了我的文章,在'BACondultRecordsAJAX.php'中檢查出 – Marcus

+0

,你需要'echo'你想要返回的'responseText'。 – Jeff

回答

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」僅選擇的內容。

希望這可以幫助那些也有這個問題的人..