在不使用iframe的情况下在jQuery弹出窗口中打开PHP文件
I have a jQuery popup box made with a div
. When the user clicks a button, this popup will open. This popup contains a form, populated dynamically based on a key sent via POST/GET with jQuery.
- How to I generate this form dynamically using these POST/GET variables?
- How do I include a form within this popup, without using an iframe?
我有一个用 div code>制作的jQuery弹出框。 当用户单击按钮时,此弹出窗口将打开。 这个弹出窗口包含一个表单,根据通过POST / GET和jQuery发送的密钥动态填充。 p>
Well you can use the $.ajax() function of jQuery that upon a click event will send a request to a - sort of - a web-service script which will grab that variable and then respond with the HTML content of the dynamic form.
Using the returned data along with $.html() function you can set the wrapper's innerHTML with the returned HTML and you will have your form.
Small example:
jQuery Code
$("#button").click(function() {
formID = 'form1';
$.ajax({
url: "formGenerator.php",
type: "POST",
data: formID,
success: function(data) {
if (data.length > 0)
$("#popupWrap").html(data);
}
});
});
PHP Code
<?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;
}
?>
Notice: this code hasn't been tested, I wrote it from the top of my head, but it should get you going.
you can use a jquery lightbox for that. for eg : check facebox:
http://defunkt.io/facebox/ and in section ajaxes..
View 'remote.html' in the Facebox
<a href="remote.html" rel="facebox">text</a>
here you can call the php file and pass the variables as request accordingly.
<a href="yourphpfile.php?id1=<?PHP echo $var1; ?>" rel="facebox">text</a>
and yourphpfile.php can process the request variable as $_REQUEST['id1'] and generate the form according to its values.
sorry if i dint understand the question.