如何将变量从jQuery传递给PHP?

时间:2014-04-09 14:36:55

标签: php jquery

我有一个jQuery函数,点击后,它会触发一个点击的链接:

$("a").click(function(e) {
    e.preventDefault();
    var link = $(this).prop('href'); 
    alert(link);
});

它工作正常,但如何将该链接传递给PHP变量以回显'它以后呢?

我没试成功:

$("a").click(function(event) {
    event.preventDefault();
    var link = $(this).prop('href'); 
    <?php $link = .'link'. ?> 
});

我知道这可能是一个愚蠢的问题,我在网上看了一遍,但我没有找到任何正确的答案。

2 个答案:

答案 0 :(得分:0)

执行此操作的唯一方法是使脚本存储在会话或数据库中传递给它的值,然后输出会话数据或从数据库读取

$("a").click(function(event) {
    event.preventDefault();
    var link = $(this).prop('href'); 
    $.post('saveLink.php', {href : link}); 
});

saveLink.php就是这样的

<?php
   // Clean your POST variable, always clean any POST variables
   // see here for a good discussion on that
   // http://stackoverflow.com/questions/4223980/the-ultimate-clean-secure-function
   $link = htmlspecialchars($_POST['href']);

   $_SESSION['links'] = $link;
?>

然后,您可以检索所有会话数据

注意

会话数据不是永久性的,不能在用户之间共享,所以如果你需要这样做,你最好使用数据库查询,如果你需要访问一个特定的链接,那么你需要发送某种类型的id

答案 1 :(得分:0)

PHP是在服务器端运行的预处理器。 jQuery在客户端(在用户的浏览器中)运行,它不能像这样与PHP通信。

虽然您可以使用Ajax请求将数据发送到PHP并在另一个PHP脚本中处理它们,例如将它们存储在数据库中。

$.ajax({
    url: '/ajax_catch.php',
    type:'POST',
    data: {
        link: link
    },
    success: function(m){
      //what to do after its done
    }                   
});