A voir également:
- [PHP/JaveScript]
- Easy php - Télécharger - Divers Web & Internet
- Get_magic_quotes_gpc php 8 ✓ - Forum PHP
- Href php ✓ - Forum PHP
- Bouton php - Forum PHP
- Echo image php ✓ - Forum PHP
18 réponses
Yorundr
Messages postés
289
Date d'inscription
mardi 31 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2012
44
26 mai 2009 à 13:27
26 mai 2009 à 13:27
Salut,
il faut que tu voi du coté de l'AJAX, parce que le js est uniquement coté client.
il faut que tu voi du coté de l'AJAX, parce que le js est uniquement coté client.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
26 mai 2009 à 15:54
26 mai 2009 à 15:54
bon avec de l'AJAX voilà une solution (il reste peut être des erreurs de frappe)
<html> <script type="text/javascript"> //fonctions AJAX function makeRequest(url,id_table,id_ligne){ var http_request = false; //créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('Abandon :( Impossible de créer une instance XMLHTTP'); return false; } http_request.onreadystatechange = function() { traitementReponse(http_request,id_table,id_ligne); } //affectation fonction appelée qd on recevra la reponse // lancement de la requete http_request.open('POST', url, true); //changer le type MIME de la requête pour envoyer des données avec la méthode POST , !!!! cette ligne doit etre absolument apres http_request.open('POST'.... http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); data='id_a_supprimer='+id_ligne; //on envoie au script php le numéro de l'ID a supprimer http_request.send(data); } //fonction traitement de la réponse à la requette AJAX function traitementReponse(http_request,id_table,id_ligne) { if (http_request.readyState == 4) { if (http_request.status == 200) { // cas avec reponse de PHP en mode texte: //chargement des elements reçus dans la liste var reponse=http_request.responseText; //alert(reponse); //si reponse positive c a d si la ligne a bien été supprimée par php on la supprime dans le tableau if(reponse="OK"){ deleteLigne(id_table,id_ligne); //appel fonction delete ligne du tableau dans la page } } else { alert('Un problème est survenu avec la requête.'); } } } //fonction supression de la ligne dans la page function deleteLigne(id_table,id_ligne){ var obj_table=document.getElementById(id_table); for (i=0;i<obj_table.rows.length;i++){ if(obj_table.rows[i].id == id_ligne){ var num_ligne_a_suppr=i; } } //alert("num a supprimer: "+num_ligne_a_suppr); obj_table.deleteRow(num_ligne_a_suppr); } </script> <?php echo "<table id='table1' BORDER='2' CELLPADDING='10' CELLSPACING='1'>"; echo "<caption><h2><center>Source:</center></h2></br></caption>"; echo "<tr>"; echo "<TH> ID </TH>"; echo "<TH> Poste </TH>"; echo "<TH> URL </TH>"; echo "<TH> Extension </TH>"; echo "<TH> $nbsp; </TH>"; //il faut absolument le meme nombre de colonnes echo "</tr>"; while ($donnees = mysql_fetch_array($recup_donnee)) { //echo $donnees['ID']; //ne mets pas d'echo en dehors des balises tr td echo "<tr id='".$donnees['ID']."'>"; echo "<td>" . $donnees['ID'] . "</td>"; echo "<td>" . $donnees['Poste'] . "</td>"; echo "<td>" . $donnees['URL'] . "</td>"; echo "<td>" . $donnees['Extension'] . "</td>"; echo "<td> <a href=\"javascript:makeRequest('suppression_ligne.php','table1','".$donnees['ID']."');\">supprimer ligne</a> </td>"; echo "</tr>"; } echo "</table>"; ?> </html> et le script supression_ligne.php: <?php if(isset($_POST['id_a_supprimer'])){ $id_a_suprimer=$_POST['id_a_supprimer']; //la tu fais ta suppression dans la base //...... //$suppr=mysql_query("DELETE..... //et la réponse a AJAX if($suppr){ //la suppression s'est bien passee alors on repond OK echo "OK"; } } ?>
Euh je n'est jamais fait d'ajax de ma vie ni de java script j'essaye de comprendre le code comme je peut mais je ne comprend pas trop le fonctionnement si :( je te donne les information sur ma base de donnée tu pourrait m'aider a compléter le code svp ?
mysql_connect("localhost","root","")
or die("Impossible de se connecter");
mysql_select_db("sauvegarde_zf")
or die("Impossible de se connecter");
$recup_donnee = mysql_query("SELECT * FROM source");
c'est c'est la connexiona ma base bon je suppose qu'il faut la mettre juste au dessus du tableaux jusque la tout va bien
les attribut de ma table sont les même nom que ceux donner au colonne de mon tableaux c'est a dire que la table source et constituer de:
ID
Poste
URL
Extension
quand je teste il me dit qu'il y a une erreur avec la requète mais je comprend pas ou elle est sans vouloir faire mon boulet ><
'id_a_supprimer' est une valeur que je doit remplacer ou sais une valeur pour le code?
je sais pas comment sa fonctionne alors pour aller modifier quelque chose la dedans...
Sa serait sympa si les information que je t'es donner suffise (sinon demande moi se qu'il manque) de m'aider a compléter le code ^^
mysql_connect("localhost","root","")
or die("Impossible de se connecter");
mysql_select_db("sauvegarde_zf")
or die("Impossible de se connecter");
$recup_donnee = mysql_query("SELECT * FROM source");
c'est c'est la connexiona ma base bon je suppose qu'il faut la mettre juste au dessus du tableaux jusque la tout va bien
les attribut de ma table sont les même nom que ceux donner au colonne de mon tableaux c'est a dire que la table source et constituer de:
ID
Poste
URL
Extension
quand je teste il me dit qu'il y a une erreur avec la requète mais je comprend pas ou elle est sans vouloir faire mon boulet ><
'id_a_supprimer' est une valeur que je doit remplacer ou sais une valeur pour le code?
je sais pas comment sa fonctionne alors pour aller modifier quelque chose la dedans...
Sa serait sympa si les information que je t'es donner suffise (sinon demande moi se qu'il manque) de m'aider a compléter le code ^^
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
26 mai 2009 à 16:52
26 mai 2009 à 16:52
est ce que ton tableau s'affiche normalement ?
essayes comme ça: tu devrais avoir un message d'alert avec OK ou Problème avec la suppression par php
as tu bien fait le script supression_ligne.php, l'as tu nommé ainsi et l'as tu mis dans le même dossier que la page actuelle ?
essayes comme ça: tu devrais avoir un message d'alert avec OK ou Problème avec la suppression par php
as tu bien fait le script supression_ligne.php, l'as tu nommé ainsi et l'as tu mis dans le même dossier que la page actuelle ?
<html> <script type="text/javascript"> //fonctions AJAX function makeRequest(url,id_table,id_ligne){ var http_request = false; //créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('Abandon :( Impossible de créer une instance XMLHTTP'); return false; } http_request.onreadystatechange = function() { traitementReponse(http_request,id_table,id_ligne); } //affectation fonction appelée qd on recevra la reponse // lancement de la requete http_request.open('POST', url, true); //changer le type MIME de la requête pour envoyer des données avec la méthode POST , !!!! cette ligne doit etre absolument apres http_request.open('POST'.... http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); data='id_a_supprimer='+id_ligne; //on envoie au script php le numéro de l'ID a supprimer http_request.send(data); } //fonction traitement de la réponse à la requette AJAX function traitementReponse(http_request,id_table,id_ligne) { if (http_request.readyState == 4) { if (http_request.status == 200) { // cas avec reponse de PHP en mode texte: //chargement des elements reçus dans la liste var reponse=http_request.responseText; //TEST mettre la ligne ci dessous en commentaire qd ça marche alert("Reponse du script php: "+reponse); //si reponse positive c a d si la ligne a bien été supprimée par php on la supprime dans le tableau if(reponse="OK"){ deleteLigne(id_table,id_ligne); //appel fonction delete ligne du tableau dans la page } } else { alert('Un problème est survenu avec la requête.'); } } } //fonction supression de la ligne dans la page function deleteLigne(id_table,id_ligne){ var obj_table=document.getElementById(id_table); for (i=0;i<obj_table.rows.length;i++){ if(obj_table.rows[i].id == id_ligne){ var num_ligne_a_suppr=i; } } //alert("num a supprimer: "+num_ligne_a_suppr); obj_table.deleteRow(num_ligne_a_suppr); } </script> <?php echo "<table id='table1' BORDER='2' CELLPADDING='10' CELLSPACING='1'>"; echo "<caption><h2><center>Source:</center></h2></br></caption>"; echo "<tr>"; echo "<TH> ID </TH>"; echo "<TH> Poste </TH>"; echo "<TH> URL </TH>"; echo "<TH> Extension </TH>"; echo "<TH> $nbsp; </TH>"; //il faut absolument le meme nombre de colonnes echo "</tr>"; //connexion a la base: mysql_connect("localhost","root","") or die("Impossible de se connecter"); mysql_select_db("sauvegarde_zf") or die("Impossible de se connecter"); //requette $recup_donnee = mysql_query("SELECT * FROM source"); //affichage while ($donnees = mysql_fetch_array($recup_donnee)) { //echo $donnees['ID']; //ne mets pas d'echo en dehors des balises tr td echo "<tr id='".$donnees['ID']."'>"; echo "<td>" . $donnees['ID'] . "</td>"; echo "<td>" . $donnees['Poste'] . "</td>"; echo "<td>" . $donnees['URL'] . "</td>"; echo "<td>" . $donnees['Extension'] . "</td>"; echo "<td> <a href=\"javascript:makeRequest('suppression_ligne.php','table1','".$donnees['ID']."');\">supprimer ligne</a> </td>"; echo "</tr>"; } echo "</table>"; ?> </html> et le script supression_ligne.php: <?php if(isset($_POST['id_a_supprimer'])){ $id_a_suprimer=$_POST['id_a_supprimer']; //la on recupere le numero de l'ID a supprimer cette valeur est transmise par AJAX, ne change rien //connexion a la base: mysql_connect("localhost","root","") or die("Impossible de se connecter"); mysql_select_db("sauvegarde_zf") or die("Impossible de se connecter"); //requette $suppr=mysql_query("DELETE fROM source WHERE ID='".$id_a_suprimer."'"); //et la réponse a AJAX if($suppr){ //la suppression s'est bien passee alors on repond OK echo "OK"; }else{ echo "Pb avec la suppression par php"; } } ?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Non sa me mets un message d'alerte me disant:
"Un problème est survenu avec la requête."
Donc je sais pas si tu voit pourquoi??
sinon question qu'à rien a voir mais $nbsp a une utiliter dans le programme ou c'est juste histoire de mettre quelque chose dans le <th></th>?
"Un problème est survenu avec la requête."
Donc je sais pas si tu voit pourquoi??
sinon question qu'à rien a voir mais $nbsp a une utiliter dans le programme ou c'est juste histoire de mettre quelque chose dans le <th></th>?
Au faite oui mon tableaus s'affiche correctement sauf la petite erreur a cause de $nbsp qui n'est pa définie d'après le naviguateur et donc affiche juste ";" dans le <th></th> des bouton
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
26 mai 2009 à 17:17
26 mai 2009 à 17:17
Houp erreur de frappe c'est   au lieu de $nbsp
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
26 mai 2009 à 17:18
26 mai 2009 à 17:18
c'est un & au lieu de $ devant nbsp pour simuler un espace
Et pour le problème d'erreur de requète ta une idée???
pasque moi si j'doit me mettre a l'ajax pour trouver j'y suis encore le mois prochain XD
pasque moi si j'doit me mettre a l'ajax pour trouver j'y suis encore le mois prochain XD
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
26 mai 2009 à 17:34
26 mai 2009 à 17:34
Surement Pb avec le script:
essayes avec le script suppression.php comme ça:
essayes avec le script suppression.php comme ça:
<?php if(isset($_POST['id_a_supprimer'])){ $id_a_suprimer=$_POST['id_a_supprimer']; //la on recupere le numero de l'ID a supprimer cette valeur est transmise par AJAX, ne change rien //connexion a la base: mysql_connect("localhost","root","") or die("Impossible de se connecter"); mysql_select_db("sauvegarde_zf") or die("Impossible de se connecter"); //requette $suppr=mysql_query("DELETE FROM source WHERE ID=$id_a_suprimer "); //et la réponse a AJAX if($suppr){ //la suppression s'est bien passee alors on repond OK echo "OK"; }else{ echo "Pb avec la suppression par php"; } } ?>
Le problème doit pas venir de la sa m'affiche toujours le même message d'erreur:
"Un problème est survenu avec la requète" :(
"Un problème est survenu avec la requète" :(
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
26 mai 2009 à 17:56
26 mai 2009 à 17:56
la requette AJAX apeelle le script php et le message est à:
//fonction traitement de la réponse à la requette AJAX
function traitementReponse(http_request,id_table,id_ligne) {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
// cas avec reponse de PHP en mode texte:
//chargement des elements reçus dans la liste
var reponse=http_request.responseText;
//TEST mettre la ligne ci dessous en commentaire qd ça marche
alert("Reponse du script php: "+reponse);
//si reponse positive c a d si la ligne a bien été supprimée par php on la supprime dans le tableau
if(reponse="OK"){
deleteLigne(id_table,id_ligne); //appel fonction delete ligne du tableau dans la page
}
}
else {
alert('Un problème est survenu avec la requête.');
}
}
}
donc au traitement de la réponse, après le else du test if (http_request.status == 200) donc ça veut dire que l'on ne reçoit pas le =200
verifies ton script, son nom, son, emplacement etc...
//fonction traitement de la réponse à la requette AJAX
function traitementReponse(http_request,id_table,id_ligne) {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
// cas avec reponse de PHP en mode texte:
//chargement des elements reçus dans la liste
var reponse=http_request.responseText;
//TEST mettre la ligne ci dessous en commentaire qd ça marche
alert("Reponse du script php: "+reponse);
//si reponse positive c a d si la ligne a bien été supprimée par php on la supprime dans le tableau
if(reponse="OK"){
deleteLigne(id_table,id_ligne); //appel fonction delete ligne du tableau dans la page
}
}
else {
alert('Un problème est survenu avec la requête.');
}
}
}
donc au traitement de la réponse, après le else du test if (http_request.status == 200) donc ça veut dire que l'on ne reçoit pas le =200
verifies ton script, son nom, son, emplacement etc...
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
26 mai 2009 à 18:04
26 mai 2009 à 18:04
attention le script doit se nommer:
avec deux p
suppression_ligne.php
avec deux p
C'est bon sa marche niquel chè pas pourquoi j'suis pas sur le même ordi et la sa ma mit le message d'erreur:
"Pb avec la suppression par php";
Et en faite le problème et qu'il avait un tout petit oublie dans:
$suppr=mysql_query("DELETE FROM source WHERE ID=$id_a_suprimer ");
Qui devient:
$suppr=mysql_query("DELETE FROM source WHERE ID=\"$id_a_suprimer \" ");
C'est vraiment parfait merci beaucoups je sais trop pas comment te remercier t'es le meilleur ;)
"Pb avec la suppression par php";
Et en faite le problème et qu'il avait un tout petit oublie dans:
$suppr=mysql_query("DELETE FROM source WHERE ID=$id_a_suprimer ");
Qui devient:
$suppr=mysql_query("DELETE FROM source WHERE ID=\"$id_a_suprimer \" ");
C'est vraiment parfait merci beaucoups je sais trop pas comment te remercier t'es le meilleur ;)
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
26 mai 2009 à 19:40
26 mai 2009 à 19:40
qd tu changes d'ordi tu accedes qd même sur le même serveur distant ou tu es sur un serveur local à ton micro ?
Non je suis en local j'ait recreer la base de donnée le seul truc qui a changer (enfin faudrat que je vérifie le non de suppression_ligne.php mais j'avait fait copier coller donc sa dvrait être bon) c'est le nom du fichier sur lequel depuis lequel j'appel suppression_ligne.php sa change quelque chose???
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
26 mai 2009 à 21:14
26 mai 2009 à 21:14
le nom du fichier a partir duquel tu appelle ne joue pas mais par contre est-il dans le même dossier ?