[PHP/JaveScript]
xXPika74Xx
-
xXPika74Xx -
xXPika74Xx -
Bonjour,
Je voudrait savoir si quelqu'un pourrait m'aider.
Voila j'ait un tableaux connecter a une base de données qui ressemble a ceci:
echo "<table 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 "</tr>";
while ($donnees = mysql_fetch_array($recup_donnee))
{
echo $donnees['ID'];
echo "<tr>";
echo "<td>" . $donnees['ID'] . "</td>";
echo "<td>" . $donnees['Poste'] . "</td>";
echo "<td>" . $donnees['URL'] . "</td>";
echo "<td>" . $donnees['Extension'] . "</td>";
echo "<td>" Bouton Supprimer "</td>";
> echo "</tr>";
}
echo "</table>";
Je voudrait a l'endroit en gras ou il y a bouton supprimer mettre un petit code javascript qui me permettrait de supprimer cette ligne de mon tableau et donc de la base de donnée pour regénéré le tableau sans recharger cette page (puisque d'après ce que j'ait comprit le javascript actualise sans recharger la page dites moi si je me trompe) mais comme je n'y connait rien en javascript je voudrait savoir si quelqu'un pourrait m'aider pour le code a mettre car je ne sais même pas par ou commencer.
Merci d'avance ;)
Je voudrait savoir si quelqu'un pourrait m'aider.
Voila j'ait un tableaux connecter a une base de données qui ressemble a ceci:
echo "<table 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 "</tr>";
while ($donnees = mysql_fetch_array($recup_donnee))
{
echo $donnees['ID'];
echo "<tr>";
echo "<td>" . $donnees['ID'] . "</td>";
echo "<td>" . $donnees['Poste'] . "</td>";
echo "<td>" . $donnees['URL'] . "</td>";
echo "<td>" . $donnees['Extension'] . "</td>";
echo "<td>" Bouton Supprimer "</td>";
> echo "</tr>";
}
echo "</table>";
Je voudrait a l'endroit en gras ou il y a bouton supprimer mettre un petit code javascript qui me permettrait de supprimer cette ligne de mon tableau et donc de la base de donnée pour regénéré le tableau sans recharger cette page (puisque d'après ce que j'ait comprit le javascript actualise sans recharger la page dites moi si je me trompe) mais comme je n'y connait rien en javascript je voudrait savoir si quelqu'un pourrait m'aider pour le code a mettre car je ne sais même pas par ou commencer.
Merci d'avance ;)
A voir également:
- [PHP/JaveScript]
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
18 réponses
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 ^^
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
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
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" :(
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...
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 ;)
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???