繁体   English   中英

使用javascript函数和变量结合PHP和MYSQL

[英]Using javascript function and variables in combination with PHP and MYSQL

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

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

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

我在想这个:

<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>

这是完全可能还是我在想错路? 关于如何实现这一目标的任何建议?

你是在正确的方式,在你的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>

干得好,不要放弃! (:

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

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

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

AJAX是您正在寻找的答案。

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

AJAX的目的是在不需要页面刷新的情况下执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM