我有一个锚标记,我想用它去某个页面,但同时我想使用onclick函数插入数据库。
这是我到目前为止所得到的: HTML:
<script type="text/javascript">
function showUser(str)
{
if (str=="")
{
alert("txtHint");
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","submit.php?click="+str,true);
xmlhttp.send();
}
</script>
<a onclick="showUser('test')" href="http:www.google.com">click here</a>
这是php文件:
mysql_connect("localhost", "username", "password") or die(mysql_error());
mysql_select_db("db_name") or die(mysql_error());
// Retrieve all the data from the "example" table
$result = mysql_query("
SELECT `clicked` FROM `links`
WHERE open = ".$_GET['link'])
or die(mysql_error());
$row = mysql_fetch_array( $result )
$x = $row['clicked'];
$y = $x++;
$result2 = mysql_query("
UPDATE `db_name`.`links`
SET `clicked` = $y
WHERE `links`.`open` = '".$_GET['link']."'
")
or die(mysql_error());
mysql_fetch_array($result2);
它应该谷歌应该,但它没有插入数据库。
有什么想法吗?
提前感谢,
里斯
编辑 - 我已经修复了php文件中的所有错误,感谢所有人,现在只需在网址中点击访问php页面即可正确插入。
但它仍然没有使用ajax插入。很明显,我对代码做错了。
任何想法?
感谢
edit2已解决 -
对于任何有兴趣的人来说,ajax代码的问题是这一行:
xmlhttp.open("GET","submit.php?click="+str,true);
它需要像这样
xmlhttp.open("GET","/submit.php?click="+str,true);
答案 0 :(得分:2)
It's going to google as it should, but it isn't inserting into the database.
是的,但请确保对php脚本的调用确实有效并且脚本本身没有错误,然后查看数据库。
答案 1 :(得分:1)
你使用mysql_fetch_array($ result2);更新使用mysql_query($ result2)
及其$ _GET ['link']其$ _GET ['click']
答案 2 :(得分:0)
似乎您忘记了;
标记:$row = mysql_fetch_array( $result )
答案 3 :(得分:0)
我发现的第一个错误是:
你想在PHP代码中使用$_GET['link'])
,但只在JS中发送click
参数。所以你应该改变你的JS代码:
xmlhttp.open("GET","submit.php?link="+str,true);
尝试在没有ajax的情况下运行php脚本,最终找到更多错误。
答案 4 :(得分:0)
我建议使用jquery&amp; .post()方法。 这种语法对人类更具可读性:)
// submit here ...
$.post(
"answer.php",
{
start: $("#ancor_id" ) . attr( "title" )
},
function(ret) {
if (!ret.success )
{
alert(1);
}
else
{
alert( "Update Ok" );
}
},
'json'
);
其中answer.php
<?
header( "Content-Type: application/json" );
$arr_json = array();
$arr_json[ "success" ] = "true";
echo json_encode( $arr_json );
exit;
?>