11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Dans mon controller, j'ai ce code:

if ($_REQUEST['tvSelect'] != null)
{
  $tvSelect = $_REQUEST['tvSelect'];
			
  $cond = array('recursive' => 0, 'conditions'=>'Webtv.slug = "'.$tvSelect.'"', 'order' => 'Episode.id DESC', 'limit' => 12 ,'fields' => array('Episode.webtv_id', 'Episode.title', 'Episode.description', 'Episode.vignette', 'Episode.created', 'Episode.slug'));
			
  $listEpi = $this->Episode->find('all', $cond);
			
  $lien1Href = array();
  $lien1Img  = array();
  $lien2Href = array();
  $lien2Titr = array();
  $descript  = array();
  $date	   = array();
						
  foreach ($listEpi as $episode)
  { 
    $description = $this->troncature($episode['Episode']['description']);
    $webtvId = $episode['Episode']['webtv_id'];
	
    if ($webtvId == 3 || $webtvId == 4)
    {
      $lien1Href[] = '/episodes/view/'.$episode['Episode']['slug'];
      $lien1Img[]  = '/img/tv/'.$episode['Episode']['vignette'];
      $lien2Href[] = '/episodes/view/'.$episode['Episode']['slug'];
      $lien2Titr[] = $episode['Episode']['title'];
      $descript[]  = $description;
      $date[]      = $this->getDatefrcourt($episode['Episode']['created']);
    }
  }
  			
  header('Content-Type: text/xml');
  echo '<'.'?xml version="1.0" encoding="ISO-8859-1"?'.'>'."\n";

  <listEpisodes>
    <lien1Href><?php echo $lien1Href; ?></lien1Href>
    <lien1Img><?php echo $lien1Img; ?></lien1Img>
    <lien2Href><?php echo $lien2Href; ?></lien2Href>
    <lien2Titr><?php echo $lien2Titr; ?></lien2Titr>
    <descript><?php echo $descript; ?></descript>
    <date><?php echo $date; ?></date>
  </listEpisodes>
<?php } ?>

Et dans ma vue, je veux récupérer le xml envoyé par le code ci-dessus.
J'utilise le code suivant:

/**La fonction qui sert à envoyer vers le php */
function getListEpisodes ()
{
  /**Je récupère l'élement html <select> */
  var selectElmt = document.getElementById("List");
 
  /**Je récupère la valeur du select affin de l'envoyer au script php ci-dessus */
  var valSelect = selectElmt.options[selectElmt.selectedIndex].value;
 
  /**J'utilise prototype.js */
  var url = '';
  var req = new Ajax.Request(
			      url,
			      {
				method: 'get',
				parameters: 'tvSelect='+valSelect,
				onSuccess: actualiserPage,
				onFailure: afficherErreur
			      }
			    );
		
}
 
/**La fonction qui récupère le xml envoyé par le controller et qui me permettra d'afficher les nouveaux éléments dans ma page */	
function actualiserPage(requete)
{
  /**Je sais qu'ici il faut utiliser responseXML mais je voulais voir ce qu'il y avait dedans d'où le responseText */
  var docXml = requete.responseText;
  alert(docXml);
}

Pour enfin en venir à mon problème.
Le alert(docXml) affiche bien le xml envoyer par le controller sauf qu'au lieu de n'envoyer que ça, il met à la suite tout le code de la page:
<Doctype...> et tout le reste du code html de ma page.
Je ne sais pas pourquoi je ne récupère pas juste le xml.

Si quelqu'un à une idée, elle serait la bienvenue parce que je n'en peux plus!!
Je débute tout juste avec ajax et javascript.
Merci d'avance
Modifié par leoetevan (31 Jan 2011 - 16:03)