IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Soucis avec InnerHTML


Sujet :

AJAX

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Par défaut [AJAX] Soucis avec InnerHTML
    Bonjour a tous !

    Je suis entrain de développer une application visant a gérer une Base de Données et j'ai un souci avec innerhtml.
    l'application est grande mais mon souci concerne juste un petit bout de code qui me fais m'arracher les cheveux depuis quelques jours

    En bref j'ai 3 tables : objet, type et lieu
    Sur l'interface de l'application, l'utilisateur sélectionne une table avec un bouton puis choisis une action(rechercher/ajouter/modifier/supprimer) avec un autre bouton

    A partir de là est exécutée une fonction qui prend en paramètres (la table désirée, l’opération désirée, un numéro de page et un paramètre de tri (( 2 derniers, pas encore fonctionnels))

    mon souci avec innerhtml est le suivant : avec la fonction javascript qui est appelée les paramètres sont envoyés dans un autre page en utilisant xhr.send

    cette page prend les paramètres et avec des requêtes mysql et des conditions renvoie une <table> </table> avec les données voulues
    (la table est séparée en plusieurs pages, de là la raison du paramètre de numéro de page, j'ai aussi prévu faire un tri si le paramètre de tri est setté )

    je suis capable de faire fonctionner cette page (en allant directement sur la page) et de visionner le résultat en lui donnant des paramètres hardcodés, donc je sait que le résultat est bon et que tout est en ordre(pas 100% fonctionnel mais assez pour continuer), cependant lorsque viens le temps de retourner ce résultat a travers xhr.responseText, je n'obtiens aucun résultat.

    ce que j'ai remarqué cependant est simple : j'ajoute une autre ligne où je viens modifier le contenu d'une autre div avec une string hardcodé et lorsque la fonction s’exécute je n'ai que le temps de voir s'afficher en éclair, un millième de secondes la dite string, donc la fonction s’exécute, le résultat que je veux s'affiche dans la <div> concernée mais change aussitôt pour revenir a son état original : vide. Ce que je trouve étrange c'est que je n'ai aucun affichage de ma page de résultat lors de cette opération, seulement le changement de ma <div> bidon qui me sers de test.

    Je ne comprend pas cet étrange comportement de plus que j'ai écrit tout le code moi-même, 1000 lignes ++ et dans tout cela il ny a que 2 innerHtml qio sont susceptibles de changer le contenu d'une <div>, celui qui me cause problème et un autre que j'utilise dans une fonction très semblable qui me sers a mettre a jour des listes déroulantes selon le choix de la liste précédente (le code est tres semblable dans les 2 fonctions)


    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
    function requestPages(numero, DBname, oper, sortBy){
     
    		var xhr = getXhr();
     
    		xhr.onreadystatechange = function(){
     
    			if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)){
     
    				document.getElementById('tableModifRetrait').innerHTML = xhr.responseText;
    				//document.getElementById('tableModifRetrait').firstChild.nodeValue = xhr.responseText;							
    			}
    		}
    		xhr.open("POST","ObjectFinder_Pages.php",true);
     
    		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
     
    		xhr.send("numPage="+numero+"&choixBD="+DBname+"&sortBy="+sortBy+"&operation="+oper+"&boutonModif=Modifier");
    	}
    Voici une des tables que j'essaie de retourner, elle prend les parametres que j'envoie et génere une <table> que je veux renvoyer a travers xrh.responseText

    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
    $result = mysql_query ("SELECT object.AssetNum, object.SerialNum, object.Object_Model, type.Description, type.Make, object.Used_By, object.Location_Code FROM object INNER JOIN type on object.Object_Model = type.Model  ".$orderBy." LIMIT $debut, 15");
    		echo"<table id='showresults'>";					
    			$number=1;
    			echo" <th id='res_titre'>  </th><th id='res_titre'>  </th><th id='res_titre'> No Asset</th><th id='res_titre'> No Serie</th><th id='res_titre'>Utilisateur</th><th id='res_titre'>Modele </th><th id='res_titre'>Location</th><th id='res_titre'>Fabricant</th><th id='res_titre'>Description</th>";					
    			while($row = mysql_fetch_array($result)){					
    				echo" <tr>";		
    					echo "<td><input type='radio' name='choixModifObjet' id='choixModifObjet' onclick=\"modifier('object', '$number');\"></td>";						
    					echo" <td id='res_cellule_Numero'> ".$number." </td>
    					<td id='res_cellule_Asset'> ".$row['AssetNum']." </td> 
    					<td id='res_cellule_Serial'>".$row['SerialNum']." </td>
    					<td id='res_cellule_User'> ".$row['Used_By']."</td>
    					<td id='res_cellule_Model'> ".$row['Object_Model']."</td>
    					<td id='res_cellule_Location'> ".$row['Location_Code']."</td>														
    					<td id='res_cellule_Location'> ".$row['Make']."</td>
    					<td id='res_cellule_Location'> ".$row['Description']."</td>";														
    				echo"</tr>";					
    				$number++;
    			}					
    		echo"</table>";	
    	}

    Un coup de main serait très grandement apprécié !

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Par défaut
    Bon, comme je dis souvent c'est en reformulant et en posant le problème que la réponse se pointe !

    j'ai continué a faire des recherches et je suis tombé sur un utilisateur qui avait le même problème que moi, il s'avere que cest un cas de <input type='submit'> VS <input type='button'>. selon les tests que jai fait, avec submit, mon affichage se fait et disparait aussitôt, dans le cas du button, jai un résultat : une gigantesque string dégeu (mon code n'est pas interprete par php... )

    comment faire ?

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Sur le forum Javascript (Ajax), c'est le code HTML généré concerné qui est nécessaire mais pas le code PHP. Dans le cas d' AJAX, le code PHP ou autre langage serveur de la page appelée pourrait nous aider.
    1- Montre nous le code HTML généré.
    2- Où tu appelles la fonction AJAX.
    3- Où est le code de la page php appelé.

    A+.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 31
    Par défaut
    Je te recommande de fusionner l'envoi des données et la récupération dans un même fichier php sinon tu ne récupéreras rien

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Citation Envoyé par medessad Voir le message
    Je te recommande de fusionner l'envoi des données et la récupération dans un même fichier sinon tu ne récupéreras rien
    Euh
    Il envoie les données dans et récupère le retour de la requête AJAX dans la même fonction. Ce qui est bon.
    Si tu veux dire que le fichier qui envoie la requête et celui qui le récupère coté serveur doit être le même, c'est faux. Une page A peut appeler une page B via une requête AJAX.

    A+.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Par défaut
    Bonjour, merci de vos réponses !
    Hier, peu après avoir envoyé mon message sur le forum jai trouvé une des informations qu'il me manquais (je n'avais aucun affichage de mes résultats de requêtes). a partir de là j'ai pu retravailler mon code et je me suis rendu compte que ce que je tentais de faire en php je pouvais le refaire en javascript (entres autres avec ajax) et en bonus : ça fonctionne
    Aujourd'hui (et hier aussi sûrement) j'avais aussi des cas de modification de Css a travers DOM:
    document.getElementById('xyz').visilibity ='visible'
    ca pouvais bien ne pas fonctionner ! ->
    document.getElementById('xyz').style.visibility ='visible'

    Bref j'ai fait du ménage dans mon code et maintenant la pluspart de mes soucis sont réglés(je peux m'arranger avec le reste) ((Le programme n'est pas terminé mais ça devrais venir))

    Je vous remercie de votre temps !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Souci avec HTTPRequest sous IE en SSL
    Par DjChat dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 04/03/2009, 11h21
  2. [DOM] Petit soucis avec innerHTML et ie
    Par dervish dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 21/11/2008, 20h17
  3. [AJAX] Soucis avec un site aspx contenant de l'ajax
    Par aj4xworld dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 10/11/2008, 12h26
  4. [AJAX] Soucis Avec Ajax et ie
    Par xyvrak dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/05/2008, 15h43
  5. [AJAX] probleme avec innerhtml
    Par GTJuanpablo dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 19/03/2006, 13h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo