【问题标题】:jQuery AJAX is not showing output after first PHP conditionaljQuery AJAX 在第一个 PHP 条件后不显示输出
【发布时间】:2011-10-18 19:14:52
【问题描述】:

我在使用 jQuery AJAX 调用时遇到问题。查询运行正常,调试输出也显示了正确的数据,但是除了被调用文档中的第一个 PHP 条件之外的任何内容都没有显示。

首先,有两个按钮,一个链接到“核心”,另一个链接到“电子邮件”:

以下是相关的 JavaScript:

$("#core").click(function(){
    loaddetails ("core");
});
$("#email").click(function(){
    loaddetails ("email");
});

function loaddetails(type) { var query = "details=" + type; 
    $.post("details.php", query , function( data ) {
     $("#d-features").html(data); alert (data);});
    return false;
};  

以及details.php的内容:

<? if($_POST['details']=='core'){ ?> blah1 <? }
   if($_POST['details']=='email') { ?> blah2 <? } ?>

“blah1”和“blah2”都出现在警告框调试输出中。但是,只有“blah1”会发布在页面 div(#d-features)上,因为“blah2”永远不会出现在页面上。

我检查了 Firebug,绝对没有错误。但我怀疑第二个条件请求可能已进入循环,因为单击“电子邮件”按钮时显示的警报窗口显示“阻止页面创建其他对话框”,尽管即使未选中也不会显示其他对话框。

是什么导致了这个问题以及如何解决?

【问题讨论】:

  • 你确定loaddetails("email");被调用了吗?

标签: javascript ajax jquery jquery-tools


【解决方案1】:

.html() 替换内容而不是追加内容。

尝试更改该行以查看两个调用是否都返回了所有数据:

$("#d-features").html(data); ==> $("#d-features").append(data);

【讨论】:

  • 感谢您的帮助。我试过了,不幸的是它仍然不起作用。它仅在单击第一个按钮('core')时显示“blah1”和“blah2”。然后它用自己的 blah1 重复。无论如何,我想用“blah2”替换第二次调用的内容,所以我认为 html 是我想要的。 Append 只会复制信息,并且由于某种原因不会显示第二个按钮的结果,即使它正确抓取了它。
【解决方案2】:

对你的代码稍作修改,你可以试试看是否可行:

function loaddetails(type) { 
    $.post(
        "details.php", 
        {
            details:    type
        }, 
        function( data ) {
            $("#d-features").html(data); 
             alert (data);
        }
    );
    return false;
}

【讨论】:

  • 非常感谢。我在您的代码中添加了“类型”之后缺少的 },不幸的是它仍然无法正常工作!只有“blah1”显示,没有“blah2”。但 Firebug 显示通过 ajax 检索到的正确文本,即“blah2”。由于某些奇怪的原因,它只是没有发布在页面上。我正在拔头发。
  • 奇怪.. 我编辑了我的帖子以添加缺少的 },感谢您的注意。 “Blah2”是否发出警报?您可以尝试将返回值放在函数(数据)中,也许有帮助?这可能无济于事,但最好还是把头发拉出来;-)
  • 是的,它提醒就好了......只是没有发布到有问题的页面。但是我用上面的两个 div 和 javascript 创建了一个新的 HTML 页面,它似乎按预期工作。那么有什么东西会干扰 ajax 在特定页面上发布吗?
【解决方案3】:

好的,这似乎与我为包含这些链接的 div 加载的选项卡效果发生冲突。所以一旦我删除了那个效果,它现在就可以工作了。但是我不确定效果有什么问题,我会发布另一个问题来解决。

感谢那些提供帮助的人!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    相关资源
    最近更新 更多