来自php的jQuery EasyUI手风琴内容

时间:2014-02-26 14:51:38

标签: javascript jquery jquery-easyui

我再一次谦卑地走到你面前,头部撞到墙上有瘀伤......

我一直在努力学习,因为我要弄清楚如何从php / MySQL查询中填充jQuery EasyUI手风琴。我相信我现在正确地将数据恢复到网页,但我无法弄清楚如何解析和格式化这个以显示为页面上的内容。我试图实现的基本上是一种手风琴,用于显示每个与个人作为手风琴项目的通信的联系历史。以下是PHP查询输出的示例。

{"rows":[{"phone":"5554072634","contact_dt":"2014-01-27 22:51:37","method":"Email","who":"Scott","note":""},{"phone":"5554072634","contact_dt":"2014-01-27 23:08:49","method":"Spoke","who":"Scott","note":"Called back and she is not interested."}]}

我试图将“contact_dt”作为每个手风琴标签的标题,然后格式化手风琴标签正文中的其余元素。目前,当我选择包含手风琴的“联系历史记录”选项卡时,我会得到一个忙碌的微调器,但这只会在正文中产生一个小方框,并且不会改变标题。这是我确定已经破坏的代码。首先是HTML部分......

<div id="history" title="Prospect Contact History" closable="true" style="padding:10px;">
        <h2 class="atitle">Prospect Details</h2>
        <div id="aa" class="easyui-accordion" style="width:500px;height:300px;">
        <div title="Title1" data-options="iconCls:'icon-save'" style="overflow:auto;padding:10px;">
        <h3 id="hist_title" style="color:#0099FF;">Accordion for jQuery</h3>
        <p>Accordion is a part of easyui framework for jQuery.
        It lets you define your accordion component on web page more easily.</p>
        </div>
        </div>
    </div>

现在对于jQuery片段......首先是JS基本上调用该函数。这是在页面末尾的正文中。

        <script type="text/javascript">
        $('#tt').tabs({
           onSelect:function(title){
              if (title == 'Prospect Contact History'){
                //$( "#hist_title" ).html( "Accordion function is working.");
                 accordionHistory();
              }
           }
        });
</script>

现在对于在头部定义的功能以及我认为真正的混乱所处的位置。

            function accordionHistory() {
        $( "#hist_title" ).html( "Accordion function is working.");
        var pp = $('#aa').accordion('getSelected'); // get the selected panel
        if (pp){
            pp.panel('refresh','contact_history.php?phone=' + phone); // call 'refresh' method to load new content
            var temp = $('#aa').form('load',pp);

            $.each( temp, function( i, val ) {
                var txt1=$("<p>Time: ").html(val.contact_dt);
                var txt2=$("</p><p>Method: ").html(val.method);
                var txt3=$("</p><p>Who: ").html(val.who);
                var txt4=$("</p><p>Note: ").html(val.note);
                //$("#hist_title").html(val.contact_dt);
                $("#hist_item").html(txt2,txt3,txt4);
            });
        }
    }

我确信我在基本的JS概念中表现出粗暴的无知。正如我在开始时提到的,我真的将它用作学习练习以及构建有用的东西。任何帮助将不胜感激。此外,任何可能帮助我解决一些概念缺陷的在线教程都会受到欢迎。提前谢谢。

1 个答案:

答案 0 :(得分:1)

嗯......我终于弄明白了我的问题。这是我现在用来实现这个功能的功能。

    function accordionHistory() {
        var pp = $('#aa').accordion('getSelected'); // get the selected panel
        if (pp){
            $.ajax({
                post: "GET",
                url: "get_history.php?phone=" + phone,
                dataType: 'json',
                success: function( details ) {
                    $.each(details.rows, function(index, element) {
                    $('#hist_title').replaceWith(
                    'Phone: '
                    + element.phone
                    + 'Contact time: '
                    + this.contact_dt
                    + '<br/>Method: '
                    + this.method
                    + '<br/>Who: '
                    + this.who
                    + '<br/>Note: '
                    + this.note
                    );
                    });
                }
            });
        }
    }

我希望像我一样的其他菜鸟觉得这很有用。