通过邮寄将值传递给弹出窗口?

时间:2013-10-28 06:50:40

标签: javascript php jquery

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

3 个答案:

答案 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+"&param1="+param1_value+"&param2="+param2_value);

答案 2 :(得分:0)

这是一个非常好的教育问题:当你将任何内容传递给服务器时,你会理解程序执行的“叙述”或“故事”会破坏。(在这种情况下为PHP)。 / p>

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

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

  2. 当服务器完成处理时,它会将数据发送到客户端以进行显示。

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

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