2013-05-03 32 views
-2

我有一些麻煩的PHP腳本。如何提交mysql查詢點擊鏈接時,使用onclick

我想在PHP代碼運行MySQL查詢當我點擊某個環節..

有我的代碼

<?php 
function hello(){ 
    $browser=$_SERVER['HTTP_USER_AGENT']; 

    $url="http://".$_SERVER[SERVER_NAME].$_SERVER[REQUEST_URI]; 

    $ip=$_SERVER['REMOTE_ADDR']; 

    mysql_connect("localhost","root","") or die("cannot connect"); 
    mysql_select_db("kpp924"); 

    mysql_query("INSERT INTO logs(ip,url,link,browser,waktu) VALUES ('$ip','$url','http://www.google.com','$browser','this is waktu')"); 
    mysql_close(); 
} 
?> 

<a href="http://www.google.com" onclick="document.write('<?php hello() ?>');" >Click to save log</a> 

這段代碼有工作,當我點擊鏈接,該值插入到數據庫。但我的問題是,當我打開頁面時,函數正在運行,一個新的數據插入到數據庫中,而不點擊鏈接。

我的代碼有問題嗎?可以請任何人告訴我錯誤在哪裏。或者也許有人可以解決它與JavaScript?

+1

您不能像這樣從客戶端JavaScript調用服務器端PHP函數。 – Revent 2013-05-03 20:39:01

+0

請創建一個PHP文件來查詢數據庫,然後有javascript鏈接或ajax它。 – 2013-05-03 20:42:53

+0

可能的重複[參考:爲什麼我的JavaScript中的PHP代碼不起作用?](http://stackoverflow.com/questions/13840429/reference-why-does-the-php-code-in-my-javascript-不工作)... – War10ck 2013-05-03 20:43:10

回答

0

的主要問題是:

<a href=[..snip...]ment.write('<?php hello() ?>');" >Click to save log</a> 
           ^^^^^^^^^^^^^^^^ 

PHP是在服務器上執行。所以當PHP生成頁面時,會調用hello函數。你不能讓代碼像這樣工作。 Javascript將從不請參閱hello(),因爲服務器上的PHP將替換該<?php hello() ?>塊,並顯示函數調用產生的任何警告/錯誤。

您需要一次AJAX調用才能將表單數據發送回服務器,或者至少需要傳統的表單提交。