iFrames从来不漂亮。为什么不使用AJAX实现与iframe相同的结果?
如果你想使用iFrames,你到底有什么困难? url变量的传递?
编辑:
您应该能够通过iframe标准URL格式来传输您的变量:
<iframe src="landing_page.php?var=str&var2=str2" name="frame_name"></iframe>
然后“landing_page.php”可通过与“得称他们访问这些变量“方法:
<?php
echo $_GET['var'];
echo $_GET['var2'];
?>
或者,因为你通过点击(我认为)改变iframe是,你可以通过达到同样结果的链接:
<a href="landing_page.php?var=str&var2=str2" target="frame_name">Click to load new iframe</a>
而“landing_page.php”可以使用与之前相同的方法访问。
但是,我仍然推荐使用AJAX,因为iframe几乎已经过时并且不必要。我还没有遇到任何关于AJAX和浏览器兼容性的问题。如果这是您想要的路线,我会建议您使用jquery library来快速启动并运行。如果您对此感兴趣,或者仍然对iframe有问题,请告诉我。
编辑2:
所以它看起来像你应该仍然能够访问这些网址使用PHP $ _GET方法您的确认页乏,然后使用mail发送电子邮件。下面是一个例子(替换URL中的实际变量名称为我做了的):
//retrieve 'email' var from url
$to = $_GET['email'];
//enter title of email
$subject = 'Your Payment Confirmation';
//create your message and retrieve 'name' and 'amount' var from url
$msg = "Thank you, ".$_GET['name']."! Your payment of ".$_GET['amount']."
was approved!";
//if you want to have a custom "FROM" in the email header
$headers = 'From: [email protected]';
//send mail to customer
mail($to,$subject,$msg,$headers);
//send to yourself as well
mail('[email protected]',$subject,$msg,$headers)
注意:如果你是在本地主机上测试这一点,你将需要启用本地服务器上的邮件功能或否则邮件将不会发送。
编辑3:
使用explode用分号作为分隔符来解析注意变种。然后您将获得一系列值。例如:
//explode the note var from url
$vars = explode(';', $_GET['Note']);
//echo values of $vars array
for($i=0; $i<count($vars); $i++) {
echo $vars[$i]. '</br>';
}
嗨,感谢您的快速回复。我使用的是内联框架,因为我更熟悉他们,然后ajax。 ajax是否适用于所有浏览器?我在表单和付款处理iframe之间传递变量以及将url变量传输到确认电子邮件时遇到困难。再次感谢 – user1332723 2012-04-14 02:17:14
非常感谢,非常有帮助和完整的答案! 我肯定会在稍后尝试AJAX方法,但是我首先想尝试指定iframe方法,因为我认为我快到了。我该如何做与你所说的相反的内容,并在php的末尾输入一些值,然后使用curl动态获取支付处理给出的新url,然后刷新当前页面上的iframe付款处理提供的新网址? – user1332723 2012-04-14 15:19:39
如果我的理解正确,用户输入他/她的付款信息,点击提交,然后你想要把这个信息扔到一个url的末尾(即payment_confirmation.php?var = str) iframe到付款确认页面,您将通过访问这些网址变量向您发送电子邮件。如果是这种情况,为什么不直接在payment_processing页面上使用