Как манипулировать типом данных xml при использовании $.ajax?

#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 ^^