2013-04-17 70 views
0

虽然我遵循http://api.jquery.com/jQuery.post/的示例代码,当然Stackoverflow我无法找到解决我的问题。AJAX发布到php

我具有其中每次用户点击它的HTML一个切换的图像,改变图像,并更新DB.Here列是代码:

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'"); 
?> 

的切换功能运作良好,但DB未更新,当用户点击和图像。 我相信它与$.post函数有关,不正确地发送数据到php。

顺便说一句,如果我做

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

它的工作原理。

注意:我正在使用mysql而不是PDO仅用于此示例。 ...是的,我的代码是混乱和丑陋的,仍然在学习。 有什么帮助吗? 谢谢

+0

“我正在使用mysql而不是PDO仅用于这个例子” - 而且你这样做的方式会造成巨大的安全漏洞。 – Quentin

+0

“仍在学习” - 为什么你在学习已弃用的API,而不是更好的API,这将继续得到很好的支持? – Quentin

+0

这意味着我将在最终决定时将其转换为PDO。 – Theodoros80

回答

3

嗯,这是一个_POST请求,而不是_GET,因此,要捕获它的值,您需要使用$_POST而不是$_GET

另外,正如我注意到的那样,有_GET链接,所以你需要改变你的$.post$.get

+1

或更改JS的'$ .get'而不是'$ .post' –

+0

我很尴尬:(很简单!谢谢。我会接受我的时间。 – Theodoros80

+0

@PhilippeBoissonneault也是。 –