【问题标题】:Firing SQL query on click of button?单击按钮时触发 SQL 查询?
【发布时间】:2013-12-23 00:23:07
【问题描述】:

我有一个简单的 PHP/MySQL 计数器,它可以递增地增加我的 SQL 数据库中的值。目前,每次页面刷新时都会触发此脚本,这意味着每次刷新页面时数字都会增加 1。我想更改它,使其仅在按下按钮时增加。

这是我的 PHP 代码:

<?php

    error_reporting(0);
    include("config.php");

    // get click details based on ID
    $sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE id='1'";
    $sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);

    $sql = "UPDATE ".$SETTINGS["data_table"]." SET clicks=clicks+1 WHERE id='1'";
    $sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);

?>

这是我想将其绑定到的按钮:

<div class="content">
    <span id="button">Click Me</span>
</div>

关于如何实现这一点的任何想法?谢谢!

【问题讨论】:

标签: php mysql button increment


【解决方案1】:

选项#1(简单):

点击按钮重新加载页面:

<span id="button" onclick="javascript: location.reload();">Click Me</span>

选项#2:

  1. 将查询部分放在单独的文件中(比如 inc.php
  2. 对按钮范围的 onclick 事件使用 AJAX 调用。 (可以使用 JQuery)

这是一个使用 jQuery AJAX 的示例:

<script type="text/javascript">
<!--
function inc_counter()
{
$.ajax({
    url: "inc.php",
    context: document.body
    }).done(function() {
    alert('incremented');
    });
    return false;
}
-->
</script>

<span id="button" onclick="javascript:return inc_counter();">Click Me</span>

【讨论】:

  • 我选择了选项 2,因为这看起来像我正在寻找的东西,但是,当我单击按钮时,增量似乎没有触发。我将上面的 PHP 代码放入了 inc.php,当我单击按钮时,我在开发人员控制台中看到“GET inc.php 200 OK 4ms”,但它不会增加 SQL 数据库中的整数。
  • 在 inc.php 中尝试打印成功/错误 (mysql_error()) 输出。然后在警报中打印响应: .done(function(msg) { alert(msg); });
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多