Ajax 在选项卡中替换 HTML


Ajax to do replace of HTML in a tab

我在这里需要一些经验帮助。我不知道该怎么做,完全模糊。

正在使用joomla,我有带有onclick="get_db()"函数的li选项卡。

<li><a href="#addpanel3" data-toggle="tab" onclick="get_db()"><s1><?php echo Jtext::_('ST_OTHER_INFORMATION');?></s1></a></li>

get_db() 的函数在这里

function get_db()
    {
    var live_site = '<?php echo JURI::root()?>';
    var catid = document.getElementById('category_id');
    var tabcatid = catid.value;
    alert(tabcatid);
    loadSubFeatureinfo(tabcatid,live_site);
    }

然后get_db() 函数调用 ajax 中的 loadSubFeatureinfo(tabcatid,live_site.js 使用以下代码

function loadSubFeatureinfo(tabcatid,live_site){
    xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null){
         alert ("Browser does not support HTTP Request")
        return
        }
    url = live_site + "index.php?option=com_osproperty&no_html=1&tmpl=component&task=ajax_loadfeainfo" + "&tabcatid=" + tabcatid;
//alert(url);
    xmlHttp.onreadystatechange=ajax4gfea;
    xmlHttp.open("GET",url,true)
    xmlHttp.send(null)
}
function ajax4gfea() {
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 
    res = xmlHttp.responseText;
    document.getElementById("subfeature_div").innerHTML = res;      
    } 
}

之后,它要求在 ajax 中ajax_loadfeainfo.php

case "ajax_loadfeainfo":
$tabcatid = JRequest::getVar('tabcatid','');
OspropertyAjax::loadSubfeature($option,$tabcatid);
break;

然后到函数 loadSubfeature($option,$tabcatid) 在 ajax 中.php

function loadSubfeature($option,$tabcatid){
global $mainframe;
@header('Content-Type: text/html; charset=utf-8');
echo $tabcatid;
    if($tabcatid == 1){ 
    echo 'This is tab 1 front';
                ?>
                        <?php   
                            if(count($groups) > 0){
                            for($i=0;$i<count($groups);$i++){
                                $group = $groups[$i];
                                $fields = $group->fields;
                                if(count($fields) > 0){
                                    echo JHtml::_('sliders.panel', $group->group_name,strtolower(str_replace(" ","",$group->group_name)));      
                                    ?>
                                    <table  width="100%" class="admintable">
                                    <tr>
                                    <?php
                                    $m = 0;
                                    for($j=0;$j<count($fields);$j++){
                                        $m++;
                                        $field = $fields[$j];
                                        if($field->required == 1){
                                            $require_field .= $field->field_name.",";
                                            $require_label .= $field->field_label.",";
                                        }
                                        ?>
                                            <td class="key" style="padding-top:4px;">
                                                <span class="hasTip" title="<?php echo $field->field_label?>::<?php echo $field->field_description?>">
                                                    <?php echo $field->field_label?>Hello
                                                </span>
                                            </td>
                                            <td valign="bottom">
                                                <?php
                                                HelperOspropertyFields::showField($field,$row->id);
                                                ?>
                                            </td>
                                            <?php
                                                if($m == 2){
                                                    echo "</tr><tr>";
                                                $m = 0;
                                                }
                                            }
                                            ?>
                                        </tr>
                                    <!--    <?php  
                                    } 
                                    ?>-->  
                                    </table>
                                    <!-- End of Addition by Jerry -->
                                    <?php
                            }
                        }
                    ?>
                    <?php   
    }
    exit;
}

我在这里要做的是在调用 get_db() 时生成 html 以替换主页中的另一个 html,但它不起作用。

我尝试将变量回显到我的页面中,它可以工作。但是,不会发送 html 代码来替换原始 html。

是一个菜鸟程序员,我不确定我做得对不对。我只需要用 ajax 生成的 html 替换页面某个部分中的原始 html 代码.php并显示我想要的结果。

这里有人可以帮忙吗?

不要混淆只是在ajax中回显输出html.php所以你会把它放到响应中,当你得到响应文本时,ajax调用的成功,只需写一个简单的行

document.getElementById("subfeature_div").innerHTML = res;

如果它不起作用,请尝试这个

document.getElementById("subfeature_div").innerHTML = '';
document.getElementById("subfeature_div").innerHTML = res;

如果这也不起作用,请尝试此操作

document.getElementById('subfeature_div').innerHTML =document.getElementById('subfeature_div').innerHTML + res;