AJAX发布到php

时间:2013-04-17 14:04:47

标签: php mysql ajax

虽然我已经关注了http://api.jquery.com/jQuery.post/的示例代码,当然还有Stackoverflow,但我找不到解决问题的方法。

我在html中有一个切换图像,每次用户点击它时,都会更改图像并更新DB中的列。这是代码:

HTML

<input type="image" src="smileys/heart.gif" class="play" onclick="toggle(this,'<?php echo $ida;?>')"/>

AJAX

  function toggle(el,al){
        if(el.className=="play")
        {
            el.src='smileys/lol.gif';
            el.className="pause";
    $.post("update.php", { "hr": 1, "ida": al } );

        }
        else if(el.className=="pause")
        {
            el.src='smileys/heart.gif';
            el.className="play";
    $.post("update.php", { "hr": 0, "ida": al } );
        }
        console.log(al);
        return false;
    }

update.php

<?php 
$host       = "localhost";
$user       = "user";
$pass       = "pass";
$database   = "db";

$heart=$_GET["hr"];
$ida=$_GET["ida"];

$con = mysql_connect($host,$user,$pass);
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db($database, $con);
mysql_query("UPDATE tablename SET heart='$heart' WHERE id='$ida'");
?>

切换功能运行良好,但用户点击图像时不会更新数据库。 我认为它与$.post函数有关,而不是将数据正确发送到php。

BTW如果我这样做

http://domain.com/update.php?hr=1&ida=127

它有效。

注意:我只使用mysql而不是PDO这个例子。 ...是的,我的代码很乱,很难看,还在学习。 有帮助吗? 感谢

1 个答案:

答案 0 :(得分:3)

嗯,这是_POST请求,而不是_GET,因此,要捕获其值,您需要使用$_POST代替$_GET

另外,正如我注意到的那样,还有_GET链接,因此您需要使用$.post更改$.get