2013-03-14 64 views
1

我試圖回聲xml值到動態創建的div標籤,但我似乎無法找到任何有關它的信息。回聲裏面動態創建的div標籤php javascript

DOM樹是用JavaScript

textArea = document.createElement('textarea'); 

創建的輸出成爲<textarea></textarea>這裏沒問題... 然後即時得到從簡單的PHP的XML文件中的值。

<?php 
foreach($xml->sticker as $sticker){ 
$post = $sticker->text . "</br>"; 
$post; 

echo $post; 
} 
?> 

和回波返回值的「Hello World」

我們的問題,我怎麼迴應的動態創建的文本區域 內輸出應該是 <textarea>Hello world</textarea>

任何想法?或者一個鏈接可能?

感謝

+0

你現在得到的結果是什麼? – Eugene 2013-03-14 10:13:33

+2

在您創建任何html元素之前處理php。因此,我現在唯一的想法是將php回顯爲隱藏的輸入或「display:none」div,然後使用javascript,使用此值填充新創建的textarea。或者你AJAX – Kedor 2013-03-14 10:14:31

+0

document.append( 「」); – 2013-03-14 10:15:10

回答

1

如果你成功地加載與XHR的XML,那麼你可以把你的迴應你的文字區域內有:

textArea.innerHTML = responseFromXHR; 
0

過得好從XML文件中的值?

在PHP中,返回一個字符串或JSON對象,然後在AJAX回調中,將數據插入到所需的位置。

1

你的應用程序應該如何工作還不太清楚。如果你想使用ajax獲取數據。這裏有些人似乎是這麼想的,儘管你沒有這樣說。我會認爲情況並非如此。如果是這樣的解決方案,最有可能的是讓你PHP腳本返回JSON編碼數據,解碼使用Javascript並將其插入textarea

由於您動態創建textarea,因此您還必須使用Javascript動態填充文本。只需將文本添加到textarea的.innerHTML即可。

一些if檢查PHP以確保文本應該打印,並且textarea存在,然後使用PHP將其添加到Javascript。

echo 'textArea.innerHTML = "' . $post; 

如果你都應該打印所有posts在同一textarea你可以做類似

<?php 
    echo '<script>'; 
    echo 'textArea = document.createElement(\'textarea\');'; 
    foreach($xml->sticker as $sticker){ 
    $posts .= $sticker->text . "\n\r"; 
    echo $post; 
    } 

    echo 'textArea.innerHTML = "' . $posts; 
    echo '</script>'; 
?> 

你也可能對在JavaScript中textarea's生存的檢查,如果你想這一點。你可能不想對你輸入textarea的文本進行一些過濾。

0

你的PHP腳本,返回的「Hello World」必須通過AJAX和成功的答案就像被稱爲「apelsinapa」說:

textArea.innerHTML = responseFromAjaxCall; 

否則 - PHP代碼被服務器解析的JavaScript創建前textarea節點。

+1

順便說一句 - 如果你想換行添加到您的textarea的,應該回送的不是「
」 \ n \ r':-) – Didzis 2013-03-14 10:25:50