#php #jquery #xml #ajax
#php #jquery #xml #ajax
Вопрос:
У меня возникают некоторые трудности с типом данных XML при использовании $.ajax
.
Я создал PHP-файл ( test.php
):
<script type="text/javascript" src="js/jquery.min.js"></script>
<?php
//this code will show some xml tag when there is an ajax call
if(isset($_REQUEST['t']) amp;amp; $_REQUEST['t']==1){
echo "<result >";
echo "<info>Tristan Jun</info>";
echo "<age>22</age>";
echo "</result>";
return;
}
?>
<script>
$(document).ready(function(){
$('#testing').click(function(){
alert('uuuuuuu');
var content = $.ajax({
type:"GET",
url :"test.php",
data:'t=1',
dataType:"**html**",
async:false,
success:function(content){
cont = $(content);
inf = cont.find('info').text();
age = cont.find('agel').text();
//alert('inf');
$('#show1').html(inf);
$('#show2').html(total);
},
error: function(){
alert('THERE'S AN ERROR');
}
}).**responseHTML**;
});//end of click
});//end of ready
</script>
<a id="testing" href="#">TEST</a>
<div id="show1"></div>
<div id="show2" style="background-color:#069"></div>
Вот мое описание для этого примера:
- Когда я нажимаю кнопку ‘TEST’, она вызывает AJAX для отображения результата выполнения PHP-кода
- В вызове AJAX я хочу показывать только текст каждого тега в 2
<div>
ниже (#show1
,#show2
)
Приведенный выше пример использует тип данных HTML в $.ajax
, и он хорошо работает для этого типа. Но когда я попробовал с типом данных XML, он ничего не показал.
Итак, я надеюсь, что вы, ребята, дадите мне несколько идей или ссылок на эту проблему.
Ответ №1:
Если весь опубликованный вами код является содержимым test.php ответ не может быть допустимым xml.
Вывод будет заканчиваться на <result/>
, но начинаться с <script/>
. (XML должен иметь один корневой элемент).
Я бы предложил использовать output_buffer, если запрос поступает через ajax, удалите содержимое буфера перед повторением xml.(Или просто поместите PHP-код сверху)
Комментарии:
1. ура!!, большое спасибо. Это работает отлично: D. Я забыл структуру xml ^^