我需要运行 PHP,特别是 PHP,我不能用任何其他语言运行,单击带有类 .URL 的链接
具体来说,我需要运行的 PHP 是这样的:
$list[4]+=10;
我需要它在点击时运行的链接如下所示:
<a href="http://someSite'sURLHere.com" class="URL">Some site's URL</a>
我听说过 jQuery 的 ajax() 函数及其衍生物。但是我怎样才能在点击 .URL 时更新 PHP 变量的值?
我需要运行 PHP,特别是 PHP,我不能用任何其他语言运行,单击带有类 .URL 的链接
具体来说,我需要运行的 PHP 是这样的:
$list[4]+=10;
我需要它在点击时运行的链接如下所示:
<a href="http://someSite'sURLHere.com" class="URL">Some site's URL</a>
我听说过 jQuery 的 ajax() 函数及其衍生物。但是我怎样才能在点击 .URL 时更新 PHP 变量的值?
首先,您的大部分问题都不可能以您希望的方式完成。特别是在 PHP 中增加一个变量,这样你就拥有$list[4] += 10
. 我这样说是因为当这个脚本运行时它不再存在,你必须从你碰巧存储数据的地方加载它(假设是一个数据库)。
因此,您需要几个文件来说明您要实现的目标的简短示例。
index.php
- 这是您的代码发生的地方,它会呈现带有链接的页面。link_clicked.php
- 点击链接时调用。您将在代码中添加需要这个基本的 Javascript(它使用 jQuery,因为您在问题中提到了它)。我已经把这个片段分成了很多部分,这不是你通常写的或看到的 jQuery 写来解释发生了什么。
$(function() {
// Select all elements on the page that have 'URL' class.
var urls = $(".URL");
// Tell the elements to perform this action when they are clicked.
urls.click(function() {
// Wrap the current element with jQuery.
var $this = $(this);
// Fetch the 'href' attribute of the current link
var url = $this.attr("href");
// Make an AJAX POST request to the URL '/link_clicked.php' and we're passing
// the href of the clicked link back.
$.post("/link_clicked.php", {url: url}, function(response) {
if (!response.success)
alert("Failed to log link click.");
});
});
});
现在,我们的 PHP 应该如何处理这个问题?
<?php
// Tell the requesting client we're responding with JSON
header("Content-Type: application/json");
// If the URL was not passed back then fail.
if (!isset($_REQUEST["url"]))
die('{"success": false}');
$url = $_REQUEST["url"];
// Assume $dbHost, $dbUser, $dbPass, and $dbDefault is defined
// elsewhere. And open an connection to a MySQL database using mysqli
$conn = new mysqli($dbHost, $dbUser, $dbPass, $dbDefault);
// Escape url for security
$url = conn->real_escape_string($url);
// Try to update the click count in the database, if this returns a
// falsy value then we assume the query failed.
if ($conn->query("UPDATE `link_clicks` SET `clicks` = `clicks` + 1 WHERE url = '$url';"))
echo '{"success": true}';
else
echo '{"success": false}';
// Close the connection.
$conn->close();
// end link_clicked.php
这个例子本质上很简单,并使用了一些不推荐的方法来执行任务。我将根据您的要求找到如何正确执行此操作。