【问题标题】:Colorbox doesn't execute PHP code in AJAX callColorbox 在 AJAX 调用中不执行 PHP 代码
【发布时间】:2013-03-21 23:49:34
【问题描述】:

我有一个 PHP 文件,并希望它通过 AJAX 加载到 colorbox 模态弹出窗口中,但文件内的 PHP 代码没有被执行(只有当我删除所有 PHP 内容时,像 div 这样的普通 HTML 标签才可见) .我不知道为什么会这样。

我可以看到例如常量的名称(如 EP_AVATAR_RESTRICTIONS)但不是它们的内容(在这种情况下它只是文本)。

我的彩盒代码:

$(".edit_avatar_link").colorbox({
        initialWidth:'386',
        initialHeight:'528',
        innerWidth:'386',
        innerHeight:'528',
        href: "<?php echo $setting['site_url'];?>/includes/forms/avatar_form2.php",
        fixed:true,
        scrolling:false,
        transition:'none',

        onComplete: function(){
            $("#cboxLoadedContent").appendTo("#cboxContent");

            var title = 'Edit Avatar';
            $('#cboxTitle').text(title);
        }
    });

我的 PHP 文件(avatar_form2.php):

<?php defined( 'AVARCADE_' ) or die( '' ); // Security ?>
<div id="edit_avatar_content">
<div class="edit_profile_header"><?php echo EP_EDIT_AVATAR;?></div>
<div class="edit_avatar_container">
    <div class="edit_profile_lable"><img src="<?php echo $user['avatar'];?>" width="75" height="75"></div>
    <div class="edit_avatar_element">
        <form enctype="multipart/form-data" id="form1" method="post" action="?task=edit_profile&done=avatar">
            <input name="new_id" type="hidden" id="new_id" value="<?php echo $new_id;?>" />
            <span class="style1"><?php echo EP_AVATAR_UP;?></span>
            <input name="img_file" type="file" id="img_file" size="50" /> <input type="Submit" name="Submit" value="<?php echo EP_AVATAR_BUTTON;?>"/>
            <?php echo EP_AVATAR_RESTRICTIONS;?>
        </form>
    </div>
</div>
</div>

【问题讨论】:

  • 究竟是什么php文件?
  • 我上面贴的代码(avatar_form2.php)。
  • 你是通过php生成你的js吗?否则还是它自己的外部JS文件?

标签: php jquery css modal-dialog colorbox


【解决方案1】:

你没有得到任何东西是正常的。您的颜色框调用了一个受程序保护的 php 文件。

这行代码导致它:

<?php defined( 'AVARCADE_' ) or die( '' ); // Security ?>

这是一种直接访问保护,因此您无法直接访问此文件。这样做是为了让它只包含在其他执行 DEFINE('AVARCADE_','something'); 的 php 文件中;

要么删除那行代码,要么制作另一个定义 AVARCADE_ 常量的 php 文件,然后在该文件中包含 vatar_form2.php

【讨论】:

  • 谢谢。我会尽快检查出来!:)
  • 我删除了它,但仍然无法正常工作。我可以在浏览器中看到所有常量的名称(即常量的名称,例如 EP_AVATAR_RESTRICTIONS 而不是它们的内容)。
  • 那是因为这个文件没有设置 EP_AVATAR_RESTRICTIONS 常量。它被设置在其他地方。在我看来,您正在使用某种 MVC 框架,并且您以完全错误的方式访问表单。
  • 好的。您将如何访问彩盒中的此类常量?常量在一个名为“English.php”的文件中定义(在另一个名为“translations”的文件夹中)。我不知道如何访问它们...
  • 它是什么MVC?通常,您会以与访问普通页面相同的方式执行此操作,但使用另一个视图而不是专门为 ajax 请求制作的标准视图
猜你喜欢
  • 2013-09-10
  • 1970-01-01
  • 1970-01-01
  • 2015-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多