1

我正在用 php 创建一个系统来获取用户对解决方案的反馈。我正在使用 MySQL 来获取解决方案并存储反馈。反馈是整数。有两列用于反馈-是和否。当用户单击文本链接/单选按钮或复选框时,我想增加它们的值。喜欢- ..................解决方案........这对您有帮助吗?是/否

当用户点击 Yes 时,它应该将 yes 列的值增加一,如果它点击 No,它应该将 no 列的值增加一。主要困难在于该页面包含许多解决方案和反馈选项。您能帮帮我吗?

4

2 回答 2

1

单击页面上的表单控件是客户端操作。在 PHP 中更新变量是一种服务器端操作。幸运的是,AJAX 为我们提供了一种从客户端访问服务器资源的方法。

以下代码使用 jQuery JavaScript 库执行 AJAX 请求。您不需要 jQuery 来执行 AJAX 请求,但是您必须对您的 AJAX 请求进行本地编码。这样做并不难,但也不是微不足道的。

JavaScript:

$.ajax({
    url: '/path/to/file.php',
    data: 'url=encoded&query=string', // Can also be an object
    success: function( output ) {
        // This function gets called once the AJAX Request returns.  It is sent 
        // a string parameter containing all output of the Server-side script
    }
});

在 中file.php,您只需执行您想要执行的任何操作。AJAX 请求可以通过 GET 或 POST 发送,传递的任何变量都将分别在$_GET$_POSTsuperglobals 中可用。

传入的output参数是一个字符串,并且是从服务器端脚本生成的所有输出(即echo/ )。print该字符串也可以是对象的JSON 表示形式,在这种情况下,您必须解析字符串才能将其用作 JavaScript 中的对象。如果您的服务器端脚本返回大量数据而不仅仅是纯 HTML/XHTML,这将非常有用。

有关更多信息,请查看 jQuery 的AJAX 文档或 Google 的原生 ajax 请求

另一种方法是将您的控件作为常规表单元素,当它们被按下时提交表单(例如,它们中的每一个都是命名的提交按钮/图像输入)。您的表单处理程序将根据$_POST. 然后,此方法会将用户输入发送到表单处理程序,该处理程序在服务器上执行,然后在完成处理后将用户重定向回页面。

于 2012-05-25T16:01:28.853 回答
0

PHP 只是服务器端,因此当用户单击“是”时,它需要发送一个请求以加载新页面、一个 Ajax 请求等,然后更新服务器。页面加载后在页面上所做的任何事情都不能用 PHP 完成。

我会将 $_POST/$_GET 请求附加到每个链接/单选按钮,然后在页面刷新或类似的情况下发送到 MySQL 以更新您的表。

于 2012-05-25T15:58:28.073 回答