2013-03-14 62 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