2014-02-16 42 views
-3

我一直在試圖找出對此的反應,因爲我認爲這並不難,但我找不到它。回想一下從javascript的Mysql查詢

我基本上想要「召回」一個有效的mysql查詢。我有一個HTML按鈕和一個跨度,所以我打電話在javascript中的函數,它有一個php代碼與Mysql查詢和存儲在我的範圍內的結果,工作正常,但...爲什麼我不能再次單擊該按鈕以獲取如果我更改了Mysql表的更新結果?

語法是類似(在一個單一的PHP文件測試):

<script type="text/javascript"> 
function test(){ 
    <?php include 'dbconnect.php'; 
    $query = 'SELECT * FROM data'; 
    $results = mysql_query($query); 
    while ($row = mysql_fetch_assoc($results)) { 
     $data = $data . "row[name]<br>"; 
    } 
    mysql_close(); 
    ?> 
    testspan.innerHTML = <?php echo $data ?>'; 
} 

</script> 

<HTML><BODY> 
<input type='button' onclick='test();'/><br> 
<span id="testspan"></span 
</BODY></HTML> 

恢復:當我點擊第一次出現的數據,但不是第二次起這樣的MySQL查詢可通話第一次?任何與變量有關的東西?

+2

您應該檢查Web服務器嘗試寫代碼之前是如何工作的。然後你轉向PHP。 – leon

+0

您應該使用AJAX加載結果。您將使用的URL將執行查詢。然後結果將被插入到你想要的html標籤中。請參閱http://stackoverflow.com/a/6570220/1294631 –

回答

1

PHP是服務器端... JS是客戶方......你不能這樣做代碼的PHP代碼中的JS,你必須使用AJAX:https://api.jquery.com/jQuery.ajax/

+0

*「您不能在代碼JS中執行代碼PHP,您必須使用AJAX」* - 確實,但它不完全*爲真。你可以在JS裏面做PHP,你不能在裏面做你想做的事情;一個是有限的,但沒有限制。這工作'var player =「<?php echo $ _SESSION ['session_name'];?>」;' - 你甚至可以在CSS內執行PHP也'border:1px <?php echo empty($ _ POST ['var'] )? $ _POST ['var']:''?> red;' –

+0

是的,這是真的,對不起 – Carbos

+0

沒問題。但是,不推薦將JS與(純粹的)PHP混合使用(反之亦然),只應謹慎使用;-) –