【问题标题】:Call a PHP Link with Onclick使用 Onclick 调用 PHP 链接
【发布时间】:2014-12-19 06:35:27
【问题描述】:

这绝不是一个重复的问题,我已经尝试了很多寻找解决方案。所以,请在投反对票之前阅读它。

背景:

此应用程序就像一个笔记网络应用程序,您可以在其中发布/删除您的笔记。

列表中的每个项目都有一个 ID,在进行删除调用时需要该 ID。

在我的应用程序中,我必须从使用 PHP 循环遍历 JSON 响应(通过 REST API)生成的列表中删除单个项目。成功登录后可以获得 JSON 响应。

问题:

要实现删除功能,我必须将每个项目的 id 作为参数发送到其余 api 删除调用。

因此,为此我必须生成动态链接的形式:

http://localhost/myfolder/api/notes/:id 

应该传递给 delete.php 函数(我已经在 CURL 中实现了)。

我搜索了可能的方法:

  1. 使用 PHP 函数:这似乎很复杂,但是如果有某种方法可以在单击链接时调用 PHP 函数(使用 CURL 的删除代码)(根据某些答案,我发现这是不可能的) ?) 这可能是一个很好的解决方案。

  2. 使用 Javascript:我必须在单击链接时调用一个函数,该函数将变量 $_SESSION["id"] 设置为当前项 ["id"],然后转到我使用的 delete.php $_SESSION 变量首先设置链接,然后使用 CURL 代码。

我尝试使用第二种方法进行基本实现,但在这个问题上遇到了障碍。如果你能用一些代码告诉你应该遵循哪种方法或任何其他方式来做到这一点,那就太好了?

这个功能在 twitter/facebook 和几乎每一个这样的服务中都有,他们是如何实现这个的,基本方法应该是一样的,对:生成动态链接并在点击时将它们传递给 php 脚本强>?

基本的 Javasript 方法:

   <script>
    <script>
    var el = document.getElementById('del1');
    el.onclick = del1;


    function del() {
      // I have to set $_SESSION here
      return false;
    }
    </script>

   echo "<a href=\"delete.php\" title=\"Delete\" id=\"del1\">"; 
   //Here, I have to pass the item["id"] to the javascript function. 

我尝试了其他一些方法,但我修改了很多代码,所以我无法发布它们。感谢您的帮助。

【问题讨论】:

  • 您可以在首次生成链接时将 GET 变量嵌入到链接中。所以你的动态链接看起来像'delete.php?id=3&delete=yes
  • 你可以用 apache 重写 URL:addedbytes.com/articles/for-beginners/…
  • 您能分享一下您的基本实现吗?
  • @fast 我正在更新问题。请检查。
  • @Florentino 我会使用 php 将 ID 附加到您的删除链接上。 echo '

标签: javascript php jquery curl web


【解决方案1】:

关于#2,你不能从 Javascript 访问用户的会话,所以这不起作用。

我的首选方式(如果使用 jquery)是将 id 放在删除按钮(或整个块)的数据属性中。然后在删除 onclick 函数中执行类似的操作

<div class="block" data-itemid="<?=$item['id']?>">
    ...
    <div class="delete_button">Delete</div>
</div>

...

$('.delete_button').on('click',function(event) {
    block = $(event).target.parent('.block');
    itemid = block.data('itemid');
    $.post('delete.php',[itemid: itemid]...);
});

【讨论】:

  • 应该再添加一个部分...成功的处理程序来删除那个row的html
  • 当然。那将进入电话后的“...”部分:)
  • @JayK 我明白了。如果您能对代码中发生的事情进行更多解释,那将非常有帮助?非常感谢。
  • 触发事件时,找到事件的目标(即删除按钮),然后获取data-itemid属性,即项目的id...然后发送使用 ajax 请求将其发送到您的 php 脚本。那是非常特定于 jquery 的(如果不是,我建议您使用它)。有关文档,请参阅 api.jquery.com
猜你喜欢
  • 2018-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-08
  • 1970-01-01
  • 2017-01-15
相关资源
最近更新 更多