Bonjour,
Dans mon controller, j'ai ce code:
Et dans ma vue, je veux récupérer le xml envoyé par le code ci-dessus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 <?php 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 } ?>
J'utilise le code suivant:
Pour enfin en venir à mon problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 /**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); }
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
Partager