如何在没有表单的情况下将数据从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?
我真的很困惑,我想知道如果我过于复杂这一点。
你可以用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>
你能告诉我使用Jquery吗? – LetTheWritersWrite
@LetTheWritersWrite我总是给你jquery代码,但你无法理解,这里给你完整的示例 – Carson
谢谢。我赞成你,但其他人低估了。 – 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>
如果使用AJAX,你可以重复使用相同ID的所有请求,您所遇到的问题是页面得到刷新。 –
好吧,我重新说明了这个问题。我没有试图在用户点击时发出获取请求。我想要的是简单地有一种方法来与服务器进行通信,链接用户单击,以便我可以在后端相应地发送获取请求。 – LetTheWritersWrite
这没有意义,你说你想知道用户点击哪个链接但没有发出请求,那么它不是一个链接..你还说'我只需要一种方法来确定用户试图选择哪个ID' ..链接不是选择。你在说像API文档吗?如果用户有一个“id”,然后对服务器的调用使用该id,而用户没有提供id来提取调用结果?如果不是,你可以把你的问题放在一些示例代码中吗? –