2015-02-11 71 views
-2

我有一個html文件,其中我使用AJAX和PHP動態加載數據。 他們沒有什麼大不了的,因爲他們工作得很好,但我仍然有一個問題。 我有(用於顯示目的)創建了兩個div,它們在DOM中顯示的字面意思相同,但源代碼中也顯示了一個。 (在一個DIV是動態加載的,在我從一開始加載的結果已經是另外一個。) 像這樣:Jquery只使用源代碼?

<div> 
    <ul> 
     <!-- Here is some data which is shown correct -- > 
     <!-- (too much to REALLY put it in here --> 
    </ul> 
</div> 
<div id="result"> 
    <!-- This should show the exact same output, but well isn't... --> 
</div> 

我經過一些類似的事情已經看到,但沒有任何幫助我解決我的問題,因爲我對「結果」的請求是

function kommissionsakte(o, s) { 
    $("#result").empty(); 
    var xmlHttp = {}; 
    xmlHttp = ajaxHandler(xmlHttp); 

    // Wenn das Objekt erfolgreich erzeugt wurde    
    var url = "ajax/getKommissionsakten.php"; 

    suchwert = escape($("#suchwert").val()); 
    var params = "o=" + o + "&s=" + s + "&suchwert=" + suchwert; 

    if (suchwert != '') { 
     $("#suchwert").css("border-color", "#31ae1c"); 

     loading(); 
     xmlHttp.open("POST", url, true); 

     //Headerinformationen für den POST Request 
     xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
     xmlHttp.setRequestHeader("Content-length", params.length); 
     xmlHttp.setRequestHeader("Connection", "close"); 

     xmlHttp.onreadystatechange = function() { 
      if (xmlHttp.readyState == 4) { 
       $("#result").html(xmlHttp.responseText); 
       closeLoading(); 
      } 
     }; 
     xmlHttp.send(params); 
    } else { 
     $("#suchwert").focus(); 
     $("#suchwert").css("border-color", "#b20e10"); 
    } 
} 

我的想法是,以某種方式得到#result不是DIV ID但進入格,但我不好,所以我不知道怎麼樣。

編輯:好的長篇解釋:

我嘗試使用jQuery到頁面加載文件樹,已加載。創建樹的代碼工作正常,當我嘗試將其加載到此頁面時,它不起作用。我讀過jQuery使用DOM而不是源代碼,所以它應該正常工作,但事實並非如此。

我可以在搜索功能中搜索關鍵字,文件樹會顯示它們。在手動創建的div中,是代碼,它創建樹並且jquery正確地操作它,如果我現在將完全相同的代碼加載到另一個div中,jquery不會操縱它。

另外,我真的(像真的很糟糕的JS),所以這將是非常非常好,有一個長的解釋在答案。

EDIT2: 請求的PHP文件代碼:

<?php 
 
include '../include/ebene.inc.php'; 
 
include $ebene.'include/error_reporting.inc.php'; 
 
include $ebene.'include/db.inc.php'; 
 
include $ebene.'include/getSprache.inc.php'; 
 
include $ebene.'include/funktionen-standard.inc.php'; 
 
include $ebene.'include/funktionen-individuell.inc.php'; 
 
include $ebene.'include/konfig.inc.php'; 
 

 
if(isset($_POST['suchwert'])){ 
 
$suchwert =($_POST['suchwert']); 
 
$php_file_tree = ''; 
 
$first_call = true; \t 
 
$neue_seite = false; 
 

 
\t if($suchwert != ''){ 
 
\t \t $parentsql = "SELECT TOP 10 KOM_Nummer from dbo.V_Kommisions_Akte_EN WHERE KOM_Nummer LIKE '%$suchwert%' group by KOM_Nummer"; 
 
\t \t $parameter = array(); 
 
\t \t $optionen = array("Scrollable" => SQLSRV_CURSOR_KEYSET); 
 
\t \t $parent = sqlsrv_query($dbD3, $parentsql, $parameter, $optionen); 
 
\t \t $parentanzahl = sqlsrv_num_rows($parent); \t 
 
\t \t if($parentanzahl != 0){ 
 
\t \t $neue_seite = true; 
 
\t \t 
 
\t \t \t \t 
 
\t \t \t if($anzahl >= 200){ 
 
\t \t \t 
 
\t \t \t \t echo '<br /><div align="center">'.$var['verfeinern'].'</div>'; 
 
\t \t \t 
 
\t \t \t }else{ 
 
\t \t \t 
 
\t \t \t \t echo '<br /><div align="center">'.$var['anzahl_ergebnisse'].': '.$parentanzahl.'</div>'; 
 
\t \t \t \t 
 
\t \t \t } 
 
\t \t $php_file_tree .= "<ul"; 
 
\t \t if($first_call) {$php_file_tree .= " class=\"php-file-tree\""; $first_call = false;} 
 
\t \t $php_file_tree .= ">"; 
 
\t \t 
 
\t \t 
 
\t \t \t while($komnr = sqlsrv_fetch_array($parent, SQLSRV_FETCH_ASSOC)) { 
 
\t \t \t 
 
\t \t \t \t $php_file_tree .= "<li class=\"pft-directory\"><a href=\"#\">" . htmlspecialchars($komnr['KOM_Nummer']) . "</a><ul>"; 
 
\t \t \t \t $komnrregister = $komnr['KOM_Nummer']; 
 
\t \t \t \t \t 
 
\t \t \t \t $subsql = "SELECT TOP 10 KOM_Nummer, Register from dbo.V_Kommisions_Akte_EN where KOM_Nummer = '$komnrregister' group by KOM_Nummer, Register"; 
 
\t \t \t \t $parameter = array(); 
 
\t \t \t \t $optionen = array("Scrollable" => SQLSRV_CURSOR_KEYSET); 
 
\t \t \t \t $sub = sqlsrv_query($dbD3, $subsql, $parameter, $optionen); 
 
\t \t \t \t $subanzahl = sqlsrv_num_rows($sub); \t 
 
\t \t \t \t 
 
\t \t \t \t while($register = sqlsrv_fetch_array($sub, SQLSRV_FETCH_ASSOC)) { 
 
\t \t \t \t 
 
\t \t \t \t 
 
\t \t \t \t \t $php_file_tree .= "<li class=\"pft-directory\"><a href=\"#\">" . htmlspecialchars($register['Register']) . "</a><ul>"; 
 
\t \t \t \t \t $registerdokuid = $register['Register']; 
 
\t \t \t \t \t 
 
\t \t \t \t $slavesql = "SELECT TOP 10 KOM_Nummer, Register, doku_id from dbo.V_Kommisions_Akte_EN where Register = '$registerdokuid' AND KOM_Nummer = '$komnrregister' group by KOM_Nummer, Register, doku_id"; 
 
\t \t \t \t $parameter = array(); 
 
\t \t \t \t $optionen = array("Scrollable" => SQLSRV_CURSOR_KEYSET); 
 
\t \t \t \t $slave = sqlsrv_query($dbD3, $slavesql, $parameter, $optionen); 
 
\t \t \t \t $slaveanzahl = sqlsrv_num_rows($slave); \t 
 
\t \t \t \t 
 
\t \t \t \t \t while($doku = sqlsrv_fetch_array($slave, SQLSRV_FETCH_ASSOC)) { 
 
\t \t \t \t \t 
 
\t \t \t \t \t \t $php_file_tree .= "<li class=\"pft-file ext-xls\"><a href=\"#\">" . htmlspecialchars($doku['doku_id']) . "</a></li>"; 
 
\t \t \t \t \t \t 
 
\t \t \t \t \t } 
 
\t \t \t \t $php_file_tree .= '</ul></li>'; \t 
 
\t \t \t \t } \t 
 
\t \t \t \t $php_file_tree .= '</ul>'; 
 
\t \t \t } 
 
\t \t $php_file_tree .= '</ul>'; 
 
\t \t } 
 
\t 
 
\t \t echo $php_file_tree; 
 

 
\t //return ($php_file_tree); 
 
\t 
 
\t 
 
\t 
 
\t } 
 

 

 
} \t \t \t \t 
 
?> \t \t \t \t

+0

你的問題根本不清楚。你想做什麼?如果兩個div的內容應該是相同的,那麼當你只能克隆原始文件時,爲什麼還要打開AJAX請求呢? 'xmlHttp.responseText'的價值是什麼?你在打什麼網址?你沒有描述這個問題,並且沒有足夠的信息來診斷任何問題。 – 2015-02-11 08:05:11

+0

爲什麼你不使用$ .ajax({}),因爲你正在使用jQuery? – Julo0sS 2015-02-11 08:05:21

+0

是的...請說出你的問題並多解釋一下 – Mayhem 2015-02-11 08:08:49

回答

0

我的回答需要一些修改,但你應該嘗試是這樣的:在某處

function getMyPage(pageUrl,someData,callback){ 
    $.ajax({ 
     type : 'POST', 
     url : pageUrl, 
     data : {'postName':someData}, 
     error : function(response){ 
      console.log("something wrong "+response+" - "+response.responseText+" - "+JSON.stringify(response)); 
     }, 
     success : function(response){ 
      callback(response); 
     } 
    }); 
}) 

然後你代碼:

$("body").on("click","#yourButton",getMyPage('http://anything','your data',function(back){ 
    $("#yourDiv").html(back); 
}); 
+0

使用XMLHttpRequest沒有任何問題,它只比jQuery替代方案稍微冗長些。 OP已經在這方面起作用了。 – 2015-02-11 08:12:55

+0

他使用Jquery,我並不是說他的請求有什麼問題,但這會讓事情變得更簡短明瞭...... – Julo0sS 2015-02-11 08:15:15