按下PHP MySQL AJAX按钮即可删除信用

时间:2012-12-06 00:07:11

标签: php mysql ajax

我正在尝试制作一个简单的信用页面,其中人们可以获得相当多的信用,点击其名称旁边的按钮即可删除信用

<table border="1">
<tr>
    <td>Name</td><td>Massages left</td>
</tr>

<?php

mysql_connect("localhost","dbuser","password");
mysql_select_db("db");

$command = "select pass_name, credit_left from pass;";
$result  = mysql_query($command);

//If there is, list that particular entry
while ($data = mysql_fetch_object($result)) 
{
    print "<tr><td>" . $data->pass_name . "</td>" . 
          "<td>" . $data->credit_left . "</td></tr>\n"
    // Button here that you click and make credit go down one;
}

?>
</table>

例如,它会说Ben - 2credits - 点击此处删除一个。

由于

修改

好的,这就是我所拥有的:
脚本是

<script>
function removeOneCredit(str)

{
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("credit").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","removeonecredit.php"+str,true);
xmlhttp.send();
}
</script>

表格是:

while ($data = mysql_fetch_object($result)) {
    print "<TR><TD>".$data->pass_name."</TD><TD id='credit'>".$data->credit_left."</TD><TD><form><input type='submit' value='- 1' onsubmit='removeOneCredit(?pass_id=".$data->pass_id."&credit_left=".$data->credit_left.")'></form></TD></TR>\n";

}

removeonecredit.php是

<html>
<?php

$pass_id = $_GET[pass_id];
$credit_left = $_GET[credit_left]-1;
//change value
mysql_connect("localhost","user","pw");
mysql_select_db("db");
$command = "update pass set credit_left='$credit_left' where pass_id='$pass_id';";
mysql_query($command);
//now print value
mysql_connect("localhost","user","pw");
mysql_select_db("db");
$command = "select credit_left from pass where pass_id='$pass_id';";
$result = mysql_query($command);
$data = mysql_fetch_object($result);
echo $data->credit_left;



?>

</html>

如果我在removeonecredit.php的末尾手动传递字符串,它可以工作,所以它必须是Ajax的一部分......

3 个答案:

答案 0 :(得分:0)

使用带按钮的from并使用JavaScript中的AJAX脚本更新数据库而无需重新加载页面。如果您不关心页面重新加载,那么您可以只使用该表单,但不必编写AJAX脚本。要为单个用户更新数据库,您可以遍历数据库,并通过唯一标识符(例如ID或用户名)找到您要查找的用户:

例如,使用UPDATE MySQL命令:

UPDATE table_name
SET credits_left='1'
WHERE username='Bob'

因此,这将仅为具有用户名“Bob”的人更新积分值。 我知道这不是很具体,但如果你提出更具体的问题,我可能会更好地帮助你。

答案 1 :(得分:0)

结果在函数参数中的=是一个问题,我在这里发布了一个关于如何逃避它的问题:Javascript escape a equal sign PHP

答案 2 :(得分:-1)

如果您想使用PHP进行更改,则必须制作表单并提交到同一页面。 PHP在服务器上呈现代码并将HTML发送到客户端(计算机上的用户)。如果希望它反映在数据库中,则必须运行mysql查询来更新该字段。然后,一旦提交表单,页面顶部就可以处理它,并且将加载新的输出。

另一种选择是使用javascript。在这种情况下,没有必要重新加载页面。

<script>
var count = 2;
$(document).on('click', '#clickButton', function(){
    $('#countDiv').text(count--);
});
</script>

你的html / php页面必须有一个id="clickButton"的按钮和一个像<div id="countDiv"></div>这样的div

我没有测试出来。但我希望它有助于或带你朝着正确的方向前进!