如何在点击链接时使用onclick提交mysql查询

时间:2013-05-03 20:35:04

标签: php javascript mysql

我在使用php脚本时遇到了一些麻烦。

当我点击某个链接时,我想在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 个答案:

答案 0 :(得分:0)

主要问题是:

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

PHP在服务器上执行。因此,当PHP生成页面时,会调用hello函数。您不能让代码像这样工作。 Javascript将从不查看hello(),因为服务器上的PHP将替换该<?php hello() ?>块,其中包含函数调用生成的任何警告/错误。

您需要通过AJAX调用将表单数据发送回服务器,或者至少进行传统的表单提交。