0

在我的页面上,我有一个搜索结果,其中包含一个用户列表,每个用户后面都有一个“ addfriend ”按钮。每行包含一个usernameuserID。同时,请求搜索结果的用户 ID 存储在 Session 变量中。

当点击 addfriend-botton 时,应该会发生以下 2 件事:

  1. 存储用户 ID和$_SESSION['userID']一个描述关系的 MySQL 表。
  2. 不要刷新页面(这是我的问题的核心),但要保持专注并将按钮的状态更改为例如“好友请求发送”。我正在考虑 GetElementByID().style 方法。

我在想这个:

<a href="#" onClick="addFriend('<? echo $_SESSION['userID'];?>','<? echo $rij['userID']; ?>')">

它调用了javascript函数addfriend

我希望能像这样抓住这两个 ID:

<script>
function addfriend(id1, id2)
{
    //server side php code where I use value of 
    //the client-side javascript variables: +id1+ and +id2+ .
}
</script>

这是可能的还是我想错了?关于如何做到这一点的任何建议?

4

3 回答 3

2

您的方式是正确的,在您的 addFriend() 函数中,您可以调用一个 php 文件(通过 AJAX)并发送 IDS 而无需刷新页面。我认为在这种情况下你最好使用 Jquery,如下所示:

<script>
function addfriend(id1, id2)
{
   $.ajax({
        type: 'POST',
        url: 'yourPHPfile.php',
        data: { your_id_1:id1, your_id_2:id2 },
        success: function(data){
                    if(data){
                       alert('Done!');
                    }
        },
        dataType: 'text'
    });
}
</script>

在您的 PHP 文件中,您可以执行以下操作:

<?php
    //receive Ids
    $id1 = $_POST['your_id_1'];
    $id2 = $_POST['your_id_2'];

    //do something here

    echo "OK!";
<?

要完成这项工作,您需要下载 jQuery 插件并将其添加到您的页面中,而不是添加到 head 标签中

<head>
     <script type="text/javascript" src="jquery.js"></script>          
</head>

干得好,不要放弃!(:

于 2012-10-17T20:47:22.070 回答
1

您可以使用 AJAX(异步 JavaScript 和 XML)来做到这一点,这实际上只是一个花哨的术语,用于“使用 JavaScript 将内容发送到服务器并获得响应,而无需重新加载页面”。AJAX 没有什么特别之处。它只涉及使用普通的旧 JavaScript 发送 HTTP 请求。

查看jQuery,这是一个为您处理大部分技术内容的 JavaScript 库。具体来说,查看它的 post()函数,它允许您使用 $_POST 系统变量将数据发送到 PHP 脚本。该页面上有很多清晰的示例。

请注意,您不需要jQuery 来使用 AJAX;jQuery 只是一个让事情变得更简单的库。如果您真的想了解 AJAX 的 JavaScript 方面是如何工作的,请尝试遵循众多教程之一,例如Mozilla 的这个

于 2012-10-17T20:25:07.007 回答
-1

AJAX是您正在寻找的答案。

听起来您已经对此有了基本的了解,但需要澄清的是,Javascript 在客户端执行,而 PHP 在服务器端执行。因此,您必须回调您的服务器才能与 PHP/MySQL 进行交互。

AJAX 的目的是在不需要页面刷新的情况下做到这一点。

于 2012-10-17T20:20:22.107 回答