Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/05/2011, 15h33   #1
Invité régulier
 
Inscription : octobre 2009
Messages : 27
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 27
Points : 5
Points : 5
Par défaut Modifier un champ par clic

Bonjour,

J'ai un tableau, et j'aimerai pouvoir modifier la colonne "Quantité" en cliquant dessus puis en modifier la valeur et en enregistrant la modification dans ma BDD.

Le problème c'est que ma fonction "modif" n'est pas reconnue... Erreur de firebug quand je clique sur une quantité : "modif is not defined"

Extrait de "fonctions.js" :
Code :
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
	function modif(id, element, champ, table) {
var saisie = document.createElement("input");
saisie.value = element.firstChild.data;
saisie.style.width  =  "100px";
element.replaceChild(saisie, element.firstChild);
saisie.focus();
saisie.select();
saisie.onblur = function() {
sauver(id, element, champ, saisie.value, table);
  }
}
 
function sauver(id, element, champ, valeur, table) {
new Ajax.Request 
    ( "modifier.php", 
	{
	method: 'get',
	parameters: {id: id, champ: champ, valeur: valeur, table: table},          
	onComplete: function(requete) 
		{
			element.innerHTML = requete.responseText;
	    }
	}
    )
}
Mon tableau (c'est ici que ca coince je pense) :
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
$tab .=	"<tr height='200'>
			<td>$film->NUMFILM</td>
			<td width='100' onClick=\"zoom('".$film->IMAGE."', '".htmlentities(addslashes($film->TITRE), ENT_QUOTES)."');\">
			<img src=\"".$film->IMAGE."\" alt='&nbsp;' class='photo' /></td>
			<td>".htmlentities($film->TITRE, ENT_QUOTES)."</td>	
			<td>".htmlentities($film->REALISATEUR, ENT_QUOTES)."</td>
			<td>$film->ANNEE</td>
			<td>".htmlentities($film->GENRE, ENT_QUOTES)."</td>
			<td>$film->DUREE</td>
 
			<td onclick=\"modif($film->NUMFILM, this, 'QTE', 'film')\">$film->QTE</td>
 
		</tr>";

Et le fichier "modifier.php" :
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?PHP
 
require ("connexion.php");
require ("Connect.php");
require("fonctions.js");
	$connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
	mysql_select_db (BASE, $connexion); 
 
 
extract($_GET);
$req="UPDATE film SET $champ='$valeur' WHERE QTE='$id'; ";
$ok=mysql_query($req);
 if ($ok)
 echo $valeur;
 
?>

Merci de votre aide!
Drey242 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 17h44   #2
Membre régulier
 
Homme
Développeur Web
Inscription : octobre 2009
Messages : 72
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Vietnam

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2009
Messages : 72
Points : 99
Points : 99
Par défaut chargement js

Bonjour,
les fichiers js sont bien appelés dans la page html ?
matlow est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 14h22   #3
Invité régulier
 
Inscription : octobre 2009
Messages : 27
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 27
Points : 5
Points : 5
Effectivement j'avais déplacé le fichier entre temps et oublié de modifier le chemin -_-

Mais maintenant mon problème c'est que les modifications ne s'enregistrent pas dans la BDD, je pense que ce sont les paramètres de la requête SQL, j'ai pas du les mettre dans le bon ordre ^^
Drey242 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 14h31   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Bonsoir,

Il est préférable de voir le code HTML qui utilise l'AJAX que le code PHP sur le forum AJAX et Javascript.

Sinon :
Citation:
$req="UPDATE film SET $champ='$valeur' WHERE QTE='$id'; ";
1- vire le ";" dans la requête.
2- C'est normale que dans ton clause Where que tu fasses l'égalité avec un champ QTE (que je suppose quantité) avec une variable "$id" (que je suppose l'id de l'enregistrement) ?

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 14h34   #5
Invité régulier
 
Inscription : octobre 2009
Messages : 27
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 27
Points : 5
Points : 5
Oui c'était ça, c'est un ami qui m'avait dit de mettre comme ça ^^

Merci a tous pour vos réponses! Sujet résolu!
Drey242 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 14h35   #6
Membre habitué
 
Inscription : octobre 2009
Messages : 122
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 122
Points : 116
Points : 116
Le plus souvent, cette erreur arrive quand une quote, une parenthèse ou une accolade est mal fermée.
bewidia est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h17.


 
 
 
 
Partenaires

Hébergement Web