在没有重定向的情况下从链接运行php代码


running a php code from a link without redirection

我想在用户点击给定链接时执行php代码,我尝试了以下代码

<!DOCTYPE html>
<html>
<head>
 <script type="text/javascript" src="jquery.min.js"></script>
 <script type="text/javascript">
 function doSomething() {
 $.get("up.php");
 return false;
 }
</script>

  </head>
  <body>
  <center>
  <a href="#" onclick="doSomething();">Click Me!</a>

   </center>
   </body>
  </html>

其中,up.php是一个实现android GCM机制的php代码,类似于链接中的机制:GCM with php(Google Cloud Messaging)

但不幸的是,当链接被点击时,什么都没有发生,php代码没有执行,只有页面的url从*****.com/test.html更改为*****.com/test.html#,顺便说一句,我已经测试了php代码,它工作得很好,所以php代码中没有问题,所以我在这里错过了什么?为什么不执行代码?

我找到了解决方案,jquery库可能不包括在我的代码中

您正在使用jquery.$。get()将如下所示。

$.get('ajax/test.html', function(data) {
 $('.result').html(data);
 alert('Load was performed.');
});

以获取进一步的帮助检查http://api.jquery.com/jQuery.get/

有时,您可能需要从链接中调用一些JavaScript。通常,当用户单击链接时,浏览器会加载一个新页面(或刷新同一页面)。

这可能并不总是可取的。例如,您可能只想在用户单击链接时动态更新表单字段。

为了防止刷新加载,可以使用JavaScriptvoid()函数并传递一个参数0(零),如下所示。

<a href="JavaScript:void(0);" onclick="return doSomething(); " />Click Me!</a>

现在,如果要使用href="#",请确保onclick的末尾始终包含return false;

使用href="javascript:void(0)"

您也可以使用jQuery Load

function doSomething() {
$('#result').load('up.php', function() {
  alert('Load was performed.');
});
}

当您使用Jquery时,应该是:

function doSomething(){
    $.get('up.php', function(data) {
        $('.data').html(data);
    });
}

链接

要停止页面刷新,可以使用javascript void()函数并传递参数0。

<a href="javascript:void(0);" onclick="return doSomething();">Click Me!</a>

<div class="data"></div>

此div用于显示up.php结果

使用fire bug启动并监视控制台和网络面板确保浏览器正在尝试获取某些内容,并且在获取时没有返回404或php错误

查看防止默认http://api.jquery.com/event.preventDefault/停止的原始链接功能

如果您仍然希望它们移动到链接,请使用窗口位置或。。。

查看引导程序链接按钮

http://twitter.github.com/bootstrap/base-css.html#buttons(链接按钮)