Bon voilà, j'ai un petit problème avec mes débuts en AJAX.

Je roule sur EasyPHP en local et tout fonctionne très bien mais si j'envoie mes fichiers chez mon hébergeur, au lieu d'afficher le résultat, on m'affiche un bout de code.

Le résultat local :



Le résultat externe :



Mon fichier PHP

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
<?php
 
include "admin_shared.inc";
 
$connexion = opendb();
 
$result = mysql_query("select * from soumissions order by id asc");
 
echo "<table><thead align='center'><tr><td>#<br>Soumission</td>
                 <td>#<br>Client</td>
                 <td>#<br>Produit</td>
                 <td>Domaine</td>
                 <td>Info</td>
                 <td>Montant<br>suppl&eacute;mentaire</td>
                 <td>#<br>Commande<br>associ&eacute;</td>
                 <td>&nbsp;</td>
                 </tr></thead>";
 
$nb_soum = 0;
while($soumission = mysql_fetch_array($result,MYSQL_NUM)){
    $nb_soum ++;
    if($nb_soum%2 == 0) echo "<tr bgcolor='#FFFFFF'>";
    else echo "<tr bgcolor='#D0D0D0'>";
    foreach($soumission as $cle => $info){
        if($info == NULL) $info = "NULL";
        echo "<td>$info</td>";
    }
    if(!$soumission[6]) echo "<td><input type='button' name='mod' id='mod' value='Modifier' onClick=\"javascript:AffInfo('soummod.inc?nocache=' + Math.random() + '&id={$soumission[0]}','show_mod','false')\"></td></tr>";
    else echo "<td></td></tr>";
    
}
 
echo "</table>";
 
?>
Ça semble accroché sur le => de mon foreach. Alors j'ai testé sans un foreach en plaçant mes données manuellement et ça bloc un peu plus loin. Je ne comprends pas que ça fonctionne bien chez moi et pas chez mon hébergeur.

Version PHP chez moi c'est 5.2.0 et chez mon hébergeur c'est 5.2.6

C'est peut-être un problème de PHP mais comme j'ai déjà programmé des choses beaucoup plus complexe, c'est surement un problème relié à mon utilisation d'AJAX.

Voici mon bout de code Javascript :

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
    function AffInfo(showpage,divid,data){
        if(divid == "show_info"){
            document.getElementById("show_mod").innerHTML = "";
        }
        if(data != "false"){
            var id_soum = document.update_soum.id.value;
            var id_produit = document.update_soum.produit.value;
            var domaine = document.update_soum.domaine.value;
            var info = document.update_soum.info.value;
            var montant = document.update_soum.montant_sup.value;
            var commande = document.update_soum.commande.checked;
            var id_client = document.update_soum.client.value;
            showpage = showpage + '&id_soum=' + id_soum + '&id_produit=' + id_produit + '&domaine=' + domaine + '&info=' + info + '&montant=' + montant + '&commande=' + commande + '&id_client=' + id_client;
        }
        document.getElementById(divid).innerHTML = file(showpage);
    }
 
    function file(fichier)
     {
     if(window.XMLHttpRequest) // FIREFOX
          xhr_object = new XMLHttpRequest(); 
     else if(window.ActiveXObject) // IE
          xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
     else 
          return(false); 
     xhr_object.open("GET", fichier, false); 
     xhr_object.send(null); 
     if(xhr_object.readyState == 4) return(xhr_object.responseText);
     else return(false);
     }
Et l'appel de la fonction AffInfo se fait comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<a href="javascript:AffInfo('soumissions.inc?nocache=' + Math.random(),'show_info','false');">Consulter les soumissions</a>
J'ai essayé d'être le plus clair possible. Je sais que le code n'est pas optimisé et que ça laisse à désirer, mais ce n'est que pour tester et pour comprendre le fonctionnement.

Merci de votre aide.