如何在没有表单的情况下将数据从HTML传递到PHP?

如何在没有表单的情况下将数据从HTML传递到PHP?

问题描述:

我正在使用一个需要特定ID号来检索某些对象的api。现在我有一个表单供用户手动输入一个ID并在提交时获取一个对象。但我想要的是链接到所有的ID,所以用户只需点击并选择要检索的对象。我不一定试图从用户点击发出GET请求。我可以在后端进行GET请求,但我只需要一种方法来确定用户试图选择哪个ID。我一直在寻找和寻找一种方法来做到这一点,但我没有找到任何与我的困境相关的东西。我读过隐藏窗体或使用AJAX,但没有更简单的解决方案吗? 没有办法让PHP服务器可以检测到哪个链接和ID被点击以将其存储在变量中?如何在没有表单的情况下将数据从HTML传递到PHP?

例如:

$lib->request('$ID.'/videos','GET');

检索一组的视频。

<button type ="button" id="23456" >Video Number 1</button> 有没有一种方法可以将上述按钮的ID传递给php?

我真的很困惑,我想知道如果我过于复杂这一点。

+0

如果使用AJAX,你可以重复使用相同ID的所有请求,您所遇到的问题是页面得到刷新。 –

+0

好吧,我重新说明了这个问题。我没有试图在用户点击时发出获取请求。我想要的是简单地有一种方法来与服务器进行通信,链接用户单击,以便我可以在后端相应地发送获取请求。 – LetTheWritersWrite

+0

这没有意义,你说你想知道用户点击哪个链接但没有发出请求,那么它不是一个链接..你还说'我只需要一种方法来确定用户试图选择哪个ID' ..链接不是选择。你在说像API文档吗?如果用户有一个“id”,然后对服务器的调用使用该id,而用户没有提供id来提取调用结果?如果不是,你可以把你的问题放在一些示例代码中吗? –

你可以用XHR发布的数据!

下面是使用jQuery后编辑的数据

// URL,parameter,callback function,RT datatype 
// just one example 
$.post("/"+id+"/videos",{}, 
    function(data){ 
    console.log(data); 
    }, 
    "text");//return datatype:json,html,xml,text 
} 

一个简单的例子,你可以通过活动获得ID

需要知道

typeof ID ===编号触发

$(document.body).on("mouseup",function(e){ 
    var _e = e.target; 
    if(typeof _e.id !== "undefined" && !isNaN(+_e.id)){ 
     var id = _e.id; 
     //trigger XHR last edited code 
    } 
}) 

edited2

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8"> 
     <title></title> 
    </head> 
    <body> 
     <button type="button" id="123456" class="id-select">Video Number 1</button> 
     <button type="button" id="654321" class="id-select">Video Number 2</button><br> 
     <script src="path/jquery.js"></script> 
     <script> 
      $(function(){ 
       $(document.body).on("mouseup",function(e){ 
        var _e = e.target; 
        if(typeof _e.id !== "undefined" && !isNaN(+_e.id)){ 
         var id = _e.id; //this id is you click button 
         //trigger XHR last edited code 

         /* 
         * @parma1 url 
         * @parma2 post parama 
         * @parma3 callback function 
         * @parma4 set return datatype 
         */ 
         $.post("/"+id+"/videos",{}, 
          function(data){ 
          console.log(data); 
         }, "text");//return datatype:json,html,xml,text 
        } 
       } 
      }); 
     </script> 
    </body> 
</html> 
+0

你能告诉我使用Jquery吗? – LetTheWritersWrite

+0

@LetTheWritersWrite我总是给你jquery代码,但你无法理解,这里给你完整的示例 – Carson

+0

谢谢。我赞成你,但其他人低估了。 – LetTheWritersWrite

您需要使用javascript来设置用户“ID”选项(按钮),然后将该ID传递给您的“后端”请求/链接。

下面是使用jQuery一个简单的例子:

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8"> 
     <title></title> 
    </head> 
    <body> 

     <button type="button" data-id="123456" class="id-select">Video Number 1</button> 
     <button type="button" data-id="654321" class="id-select">Video Number 2</button><br> 

     <br> 
     <button type="button" class="watch-video">Watch Video</button> 

     <br> 

     <div id="selected"></div> 

     <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script> 
     <script> 
      $(function(){ 
       var id = 0; 
       $('#selected').html('You not selected the id yet.'); 

       $('.id-select').click(function(){ 
        id = $(this).data('id'); 
        $('#selected').html('Selected video id: '+id); 
       }); 

       $('.watch-video').click(function() { 
        window.location.href = '/'+id+'/videos'; 
       }); 
      }); 
     </script> 
    </body> 
</html>