为什么我的弹出窗体没有被帖子数据填充

时间:2013-10-24 16:23:35

标签: php jquery forms

我有一个计划应用程序,用户可以单击表字段,它将在新页面中打开一个包含相应发布数据的表单。我的用户已经决定这很难,现在需要查看时间表,并且表单是一个弹出窗口,以便他们可以同时看到两者。我有表单弹出窗口工作,但我的功能是没有传递发布数据。这是代码:

$(".main td:not(.jobCell):not(.tJCell)").click(function()
{
    var roleID = document.getElementById('roleID').value;
    var notDept =  $('.deptSelect').val();
    var myDept = $('#myDept').val();
    var $this = $(this);
    var colIndex = $this.cellPos().left;
    var preCol = colIndex % 2;

        if (myDept != notDept)
        {
            return;
        }


    if (preCol == 0)
    {
        colIndex = colIndex /2;
    }
    else
    {
        colIndex++;
        colIndex = colIndex /2;
    }

    var row = $this.parent('tr').contents('th:eq(0)').html();
    var departmentID = $(".deptSelect").val();  
    var headerObj = $(this).parents('.main').find('th').eq(colIndex);
    var toPass =   $.trim(headerObj.text());
    var picked = $("#picked").val();
    var testDate = new Date(picked + " " + row);
    var today = new Date();
    var today = new Date(today - 2*60*60*1000);


    if (testDate < today)
    {
        if (roleID > 2)
        {
        alert (today);
        alert("You Cannot Schedule a New Job in the Past!");
        }
        return;
    }
    var thisForm = '';

    if (roleID == 5)
    {
        thisForm = '../forms/tentativeJobForm.php';
    }
    else
    {
        thisForm ='../forms/newJobForm.php';
    }

    var f = document.createElement("form");
    f.setAttribute('class','jobTime');
    f.setAttribute('method','post');
    f.setAttribute('action',thisForm);

    var iii = document.createElement('input');
    iii.setAttribute('type','hidden');
    iii.setAttribute('name','departmentID');
    iii.setAttribute('value',departmentID);
    f.appendChild(iii);

    var i = document.createElement('input');
    i.setAttribute('type','hidden');
    i.setAttribute('name','sTime');
    i.setAttribute('value',picked + " " + row);
    f.appendChild(i);

    var ii = document.createElement('input');
    ii.setAttribute('type','hidden');
    ii.setAttribute('name','ast');
    ii.setAttribute('value',toPass);
    f.appendChild(ii);

    document.getElementsByTagName('body')[0].appendChild(f);
    if (roleID > 2)
    $('.jobTime').onsubmit(window.open(thisForm,null,"height=550,width=900,toolbar=0,menubar=0,location=100,status=no,scrollbars=1,resizable=1,right=300,top=100"));
    //$('.jobTime').submit();
    else
    return;
});

我知道该功能没有发布数据,所以我的问题是'如何使用帖子数据打开弹出窗体的功能?'

1 个答案:

答案 0 :(得分:1)

正在提交的表单和window.open()函数调用是对同一页面的两个不同请求,一个在同一窗口中,另一个在新窗口中。您的帖子数据会被发送,但不会发送到您打开的新窗口。

最简单的方法是首先打开窗口,然后通过给它命名,然后告诉表单定位新窗口来发送你的帖子数据。

在提交表单之前打开窗口:

window.open("","mynewwindow","height=550,width=900,toolbar=0,menubar=0,location=100,status=no,scrollbars=1,resizable=1,right=300,top=100");

将表单作为目标:

f.setAttribute('target','mynewwindow');

为了更加华丽和优雅,您可以使用jquery load() function在当前页面的一部分中打开表单。您不需要以这种方式在html中创建表单元素。