2011-04-20 111 views
1

這裏是我的index.php文件:Ajax到PHP,沒有更新?

<script type="text/javascript"> 
function addHit(str){ 
    $.post("http://www.site.com/addclick.php", { id: str }) 
}; 
</script> 

<a href="javascript:;" onClick="addHit('928'); return false;">update ID 928 with 1 click</a> 

這是我addclick.php

$id = $_POST['id']; 
mysql_query("UPDATE `table` SET `x` = `x` + '1' WHERE `id` = '" . $id . "'"); 

如果我有WHERE id = '1'它更新row 928完美的,但是當它被設置爲可變後,它不」噸。我唯一能想到的就是ajax調用不能正確解析ID。

這有什麼問題?

+1

它在'var_dump($ _ POST)'裏面嗎? – alex 2011-04-20 04:35:43

+0

我建議不要使用http://www.site.com/addclick.php而不是/addclick.php我以前有同樣的問題。 – kedomonzter 2011-04-20 04:37:07

+2

$ .post(「/ addclick.php」,{id:str})或$ .post(「addclick.php」,{id:str}) – kedomonzter 2011-04-20 04:37:49

回答

0

不是100%肯定,但它可能是因爲在jQuery的你沒有把標識放在引號是這樣的:

$.post("http://www.site.com/addclick.php", { 'id': str }) 

它考慮到你的id是一個變種,而不是名稱變量...

希望它有幫助。

-1

爲什麼$ _POST是盲目地插入到數據庫之前不檢查的?我可以破解一個腳本,設置id = 'Robert\'; drop table students --並殺死你的數據庫。

$id = intval($_POST['id']); 
$sql = "UPDATE `table` SET x=x+1 WHERE id=$id"; 
$result = mysql_query($sql); 
if ($result === FALSE) { 
    die("query failed: " . mysql_error()); 
} 
+0

這不是PHP的問題,我沒有發佈真正的PHP代碼,這是一個例子。最重要的是,這是發展,而不是網站上的工作腳本。 – Latox 2011-04-20 05:25:24