使用ajax插入数据库

时间:2011-06-07 12:29:36

标签: php html ajax

我有一个锚标记,我想用它去某个页面,但同时我想使用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);

5 个答案:

答案 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;
?>