我想弄清楚如何将元素id传递给只执行php代码的弹出窗口。单击链接时,它会抓取链接ID,打开弹出窗口,如何获取要传递的ID?
JS:
$(document).on('click', '.char_inventory', function (e) {
c = true;
var id = e.currentTarget.id;
//alert(id);
if (id == "close_inventory") {
$("#console").html("<div id=\"placeholder\"></div>");
c = false;
} else {
/* $.post('input_commands/inventory_show.php',{id:id}, function(data) {
text=data;
elem = $("#console");
//delay=100;
elem.html(text);
}); */
function popUp(target, id) {
//var id = parent.document.getElementById('id').value;
popWin = window.open(target, "windowName", "width=400,height=250,status=yes");
}
popUp("input_commands/inventory_show.php", id);
}
load();
//setTimeout(function(){c=false;},4000);
});
答案 0 :(得分:0)
function popUp(target, id) {
window.some_id = id;
window.open(target, "windowName", "width=400,height=250,status=yes");
}
并在子窗口中:
//get some_id
var id = window.opener.some_id;
如果要从子窗口访问具有id的元素,请执行:
var id = window.opener.some_id;
var clickedElement = window.opener.$("#" +id)
答案 1 :(得分:0)
将行popUp("input_commands/inventory_show.php", id);
修改为popUp("input_commands/inventory_show.php?id="+id);
,然后在页面 inventory_show.php 上,您可以使用$_REQUEST['id']
或$_GET['id']
来获取值。
如果你想传递更多参数,你可以这样做:
popUp("input_commands/inventory_show.php?id="+id+"¶m1="+param1_value+"¶m2="+param2_value);
答案 2 :(得分:0)
这是一个非常好的教育问题:当你将任何内容传递给服务器时,你会理解程序执行的“叙述”或“故事”会破坏。(在这种情况下为PHP)。 / p>
将情况解释为两个单独的操作:
用户选择一个项目,数据将被送到服务器端进行进一步处理。
当服务器完成处理时,它会将数据发送到客户端以进行显示。
在JavaScript中,没有单行程序执行。有侦听器,当发生事件时,如用户操作或超时或AJAX响应的到达,适当的处理程序执行并处理它(并且可以做将来会产生更多事件的事情,例如设置计时器或启动AJAX)。
当您启动将导致将来发生事件的事情时,您应负责该事件应包含处理程序的所有信息。大多数情况下有一种简单的方法:您可以为每个事件设置单独的处理程序,其他情况下您应该使用一种机制将ID或“目标地址”放入事件中,处理程序可以识别该事件。