从php打开colorbox

时间:2012-02-25 10:15:49

标签: php include colorbox

我的php部分有问题。

我有一个.php注册表,希望得到回复 在iframe颜色框中提交后的消息。 我有一个单独的响应.php到目前为止包含在 登记表.php。到现在为止它将显示在一个表格中 包含一次响应.php。多数民众赞成看起来不是很好,所以我想这样做 在彩盒中打开。

我是那个公司的新手并且长时间寻找答案但是 没有成功。

有没有人可以帮助我。我的想法是回应一个 url的响应.php而不是include-once响应.php但是 它不起作用。我认为接下来的事情是添加类似的东西 -class iframe链接到url- like在我使用colorbox的html体中 条款和条件。

如果有人可以提供帮助,我将非常感激。谢谢。

3 个答案:

答案 0 :(得分:1)

嗯......你在混淆客户端和隔离操作。请注意,colorbox是在客户端而不是服务器上运行的东西。因此,您需要更改页面的行为。

版本1

提交表单后,使用您的响应PHP文件输出JavaScript代码,该代码将在文档加载完毕后打开彩色框。像这样:

 <?php if (isset($_POST['submitted'])): ?>
 <script type="text/javascript">
    $(document).ready(function(){
         // open your colorbox here
    });
 </script>
 <?php endif; ?>

版本2

用AJAX解决方案替换您的标准表单。单击提交按钮时,使用jQuery对您的respone PHP文件执行AJAX请求。通过这种方式,您可以在处理请求时显示颜色框,一旦完成,您可以隐藏颜色框,显示另一个或任何您喜欢的颜色。

您可以在SO或jQuery文档中找到有关如何使用jQuery执行AJAX请求的大量说明:http://api.jquery.com/jQuery.post/

版本3

最丑陋的解决方案是使用JavaScript打开包含iframe的颜色框,然后使用target="iframename标记中的<form>“将表单提交到此iframe。这可能是最接近什么的解决方案你描述了你想要做的事情,但它也是所有可能性中最丑陋的一种。;)

答案 1 :(得分:1)

您可以使用ajax提交表单并编写消息以显示在ajax调用页面中,并在同一页面的彩色框中显示该消息。

$("#myForm").submit(function(){
var formData = $(this).serializeArray();
$.ajax({
                'type':'post',
                'data':formData ,
                'url':'action-page-url.php',
                'cache':false,
                'success':function(r){
                          $("body").append("<div id='response'></div>");
                          $("#response").hide().html(r).colorbox();
                          }
       });   
return false; // To override non-ajax submitting
});

答案 2 :(得分:1)

行,

感谢您回答我的问题。

我从一个几乎遇到同样问题的人那里找到了ajax解决方案的代码:

$("#link").colorbox({ inline:true, href: "#msg"});
$('input[type="submit"]').click(function(){
   $.ajax({
      type: "POST",
      url: "form.php",
      data: $('intpu[type="text"]').serialize(),
      success: function(data){
          $("#msg").html(data);
          $("#link").click(); 
          return false;
      }
   });
   return false;
});

和html代码

<form name="exam" method="post">
      <input size="60" type="text" name="quote" />
      <input type="submit"> 
</form>
<a id="link" style="display:none"></a>
<div id="msg" style="display:none;"></div>

我认为这不是向机构实施响应消息的最佳方式。每个查看页面源代码的人都可以阅读响应消息。我会像第一个版本一样prefera服务器hiden版本,但它不起作用。当我打开没有像

这样的选择器的颜色盒时
$.colorbox({iframe:true, href:"msgToUser.php"

将在单击提交后打开颜色框,但会在响应中集成#message。 php文件不会显示。另一个问题是,当我要提交表格时,由于缺少输入而会出现错误,彩盒也将被打开。

来自德国柏林的祝福。