在不使用iframe的情况下在jQuery弹出窗口中打开PHP文件

时间:2011-09-04 05:02:56

标签: php javascript jquery html

我有一个用div制作的jQuery弹出框。当用户单击按钮时,此弹出窗口将打开。这个弹出窗口包含一个表单,根据通过POST / GET和jQuery发送的密钥动态填充。

  1. 如何使用这些POST / GET变量动态生成此表单?
  2. 如何在不使用iframe的情况下在此弹出窗口中包含表单?

2 个答案:

答案 0 :(得分:1)

你可以使用jquery灯箱。 例如:检查facebox:

http://defunkt.io/facebox/和ajaxes部分..

View 'remote.html' in the Facebox
 <a href="remote.html" rel="facebox">text</a>

在这里你可以调用php文件并相应地传递变量。

 <a href="yourphpfile.php?id1=<?PHP echo $var1; ?>" rel="facebox">text</a>

和yourphpfile.php可以将请求变量处理为$ _REQUEST ['id1']并根据其值生成表单。

抱歉,如果我理解这个问题。

答案 1 :(得分:1)

嗯,你可以使用jQuery的$ .ajax()函数,在click事件发送请求时 - 一个 - 一个web服务脚本,它将获取该变量,然后使用该内容的HTML内容进行响应动态形式。

使用返回的数据和$ .html()函数,您可以使用返回的HTML设置包装器的innerHTML,您将获得表单。

小例子:

jQuery代码

$("#button").click(function() {
    formID = 'form1';

    $.ajax({
        url: "formGenerator.php",
        type: "POST",
        data: formID,
        success: function(data) {
            if (data.length > 0)
                $("#popupWrap").html(data);
        }
     });
});

PHP代码

<?php
    // PHP Code 
    if (isset($_POST['data']) && !empty($_POST['data']))
    {
        switch($_POST['data'])
            case 'form1':
                echo '<form name="FormName" action="" method="POST"><input type="text" /><input type="submit" value="Submit" /></form>';
            break;
            case 'form2':
                echo '<form name="FormName2" action="" method="POST"><input type="text" /><input type="submit" value="Submit" /></form>';
            break;
    }
?>

注意:此代码尚未经过测试,我是从头脑中编写的,但它应该让你去。

http://api.jquery.com/jQuery.ajax/