0

我试图弄清楚如何将元素 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);
}); 
4

3 回答 3

0

you mean like:

function popUp(target, id) {
  window.some_id = id;
  window.open(target, "windowName", "width=400,height=250,status=yes");
}

and in child window:

//get some_id
var id = window.opener.some_id;

if you want to access the element with id from child window, do:

var id = window.opener.some_id;
var clickedElement = window.opener.$("#" +id)
于 2013-10-28T07:31:37.920 回答
0

编辑页面inventory_show.phppopUp("input_commands/inventory_show.php", id);上的行,您可以使用或获取值。popUp("input_commands/inventory_show.php?id="+id);$_REQUEST['id']$_GET['id']

如果你想传递更多参数,你可以这样做:

popUp("input_commands/inventory_show.php?id="+id+"&param1="+param1_value+"&param2="+param2_value);
于 2013-10-28T07:39:06.893 回答
0

这是一个很好的教育问题:当您将任何信息传递给服务器(在本例中为 PHP)时,您将了解程序执行的“叙述”或“故事”会中断。

将情况解释为两个单独的动作:

  1. 用户选择一个项目,数据被转发到服务器端进行进一步处理。

  2. 当服务器完成一个处理后,它会将数据发送给客户端进行显示。

在 JavaScript 中,没有单行程序执行。有侦听器,当事件发生时,例如用户操作或超时或 AJAX 响应的到达,适当的处理程序会执行并处理它(并且可能会做一些将来会产生更多事件的事情,例如设置一个计时器或启动 AJAX)。

当您启动某事,这将在未来引发事件时,您有责任让该事件包含处理程序的所有信息。大多数情况下有一种简单的方法:您可以为每个事件设置单独的处理程序,其他情况下您应该使用一种机制将 ID 或“目标地址”放入事件中,处理程序可以识别。

于 2013-10-28T08:37:58.063 回答