Javascript jQuery:动态插入<;ul>;韩元';我不能正常工作

Javascript jQuery:动态插入<;ul>;韩元';我不能正常工作,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我正在jQuery Mobile中编写一个页面,我有一个无序列表,其中包含如下元素: <ul id="ul1" data-role="listview" data-theme="d"> <li> <a> <h1>Who wants to live forever</h1> <p>Queen</

我正在jQuery Mobile中编写一个页面,我有一个无序列表,其中包含如下元素:

<ul id="ul1" data-role="listview" data-theme="d">
            <li>
                <a>
                <h1>Who wants to live forever</h1>
                    <p>Queen</p>
                </a>
            </li>
            <li>
                <a>
                <h1>Personal Jesus</h1>
                    <p>Depeche Mode</p>
                </a>
            </li>
        </ul>
  • 谁想永生 女王

  • 个人耶稣 Depeche模式

但我想动态插入元素,在MySQL数据库中搜索。 它可以工作,但是插入UL中的元素看起来不像jquerymobile中的默认LI:它们显示为UL中抛出的简单文本。jQuery手机的“图形”没有显示。以下是代码:

用于通过php进行搜索的Ajax函数:

<script>
function ricerca() {
    str = document.getElementById("search").value;
    if (str == "") {
        document.getElementById("ul1").innerHTML = "Nulla";
        return;
    } else { 
        if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else {
            // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("ul1").innerHTML = xmlhttp.responseText;
            }
        }
        xmlhttp.open("GET","cerca.php?ricerca="+str+"&tipo="+document.getElementById("select-choice-0").value,true);
        xmlhttp.send();

    }

函数ricerca(){
str=document.getElementById(“搜索”).value;
如果(str==“”){
document.getElementById(“ul1”).innerHTML=“Nulla”;
返回;
}否则{
if(window.XMLHttpRequest){
//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}否则{
//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“ul1”).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open(“GET”、“cerca.php?ricerca=“+str+”&tipo=“+document.getElementById”(“select-choice-0”)。值,true);
xmlhttp.send();
}
以下是将内容写入UL的代码行(在PHP中):

// output data of each row
    while($row = $result->fetch_assoc()) {
        if($inizio == 0)
        {if ($row['CodISWC'] != $prev_iswc) {
           echo "<li>
                <a>
                <h1>". $row["NomeCanzone"]. "</h1>
                    <p>". $row["NomeArtista"];
           $prev_iswc = $row['CodISWC']; 
        }
        else{
            echo ", ". $row["NomeArtista"];   
        }

         $inizio = 1;
        }
        else{
            if ($row['CodISWC'] != $prev_iswc) {
           echo "</p>
                </a>
            </li><li>
                <a>
                <h1>". $row["NomeCanzone"]. "</h1>
                    <p>". $row["NomeArtista"];
           $prev_iswc = $row['CodISWC']; 
        }
        else{
            echo ", ". $row["NomeArtista"];   
        }


        }

    }
//每行的输出数据
而($row=$result->fetch_assoc()){
如果($IO==0)
{如果($row['CodISWC']!=$prev_iswc){
回声“
  • “$row[“NomeCanzone”]” “$行[“NomeArtista”]; $prev_iswc=$row['CodISWC']; } 否则{ echo“,”$行[“NomeArtista”]; } $IO=1; } 否则{ 如果($row['CodISWC']!=$prev_iswc){ 回声“

  • “$row[“NomeCanzone”]” “$行[“NomeArtista”]; $prev_iswc=$row['CodISWC']; } 否则{ echo“,”$行[“NomeArtista”]; } } }
  • 更新列表后,需要刷新列表,如下所示:

    $('#ul1')。listview('refresh')


    是否将响应附加到div?成功搜索后是否可以发布结果HTML?
    console.log(xmlhttp.responseText)
    add echo'

    '在php脚本的末尾,您没有正确关闭标记。`它可以工作,但是插入到UL中的元素看起来不像jQuery Mobile中的默认li:它们显示为UL中抛出的简单文本。jQuery Mobile的“图形”不表示“”-您可以使用
    开发人员工具检查打印的元素吗?
    :鼠标右键单击元素->
    检查元素
    ?它不起作用!我尝试将刷新放在任何地方,但它不起作用…我不明白,它适用于web上的每个示例,但在我的情况下,它不起作用!!问题似乎没有解决当我尝试刷新listview时,可能会出现错误“$(…)。listview不是函数!”!