Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, 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 08/06/2011, 12h07   #1
Membre du Club
 
Inscription : mars 2008
Messages : 274
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 274
Points : 50
Points : 50
Par défaut Reception de données avec ajax

Bonjour/ bonsoir,

J'ai jusqu'à présent développé une application en PHP. Un simple formulaire qui envoie des données à un fichier tiers, qui fait appel lui-même à une méthode (classe) Ce qui donne :
Code php :
1
2
3
4
if (isset($_POST['validNewProd'])) {
    $gestion_products->ajoutProduit_fiche($_POST);
    echo Common_functions::$message;
}
En PHP seul, ce code est fonctionnel.
Je rajoute maintenant une couche de java-script qui envoie les données en ajax à ce même fichier. Le problème qui se pose est que '$_POST['validNewProd']' n'est plus reconnu.
Ma volonté est d'essayer de garder l'application fonctionnelle si java-script est désactivé (dégradation élégante). Comment faire en sorte alors de conserver ces deux aspects sur ce même fichier ? (ou d'une autre manière)
Merci,
yann18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 12h09   #2
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
Bonjour,

Ce qu'on voit ici c'est ton code PHP qui ne nous aidera pas à trouver l'erreur. Montre nous ton code Javascript et HTML concerné.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 12h36   #3
Membre du Club
 
Inscription : mars 2008
Messages : 274
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 274
Points : 50
Points : 50
Ok, j'aurais dû poster dans le forum jquery alors.
Le formulaire:
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
<form name="addProduct" id="addProduct" method="post" action="file.php" target="_blank">
...
<label for="famille">Famille de produits</label>
...
<select name="famille" id="famille" title="famille">
  <option selected="selected">Choisissez une famille</option>
  <option>- - - - - - - - - - - - - - - - -</option>
  <option value="1">Baguettes</option>
  <option value="2">Pains</option>
  <option value="3">Pains spéciaux</option>
...
</select>
...
<label for="nameProd">Nom du produit *</label>
...
  <input name="nameProd" id="nameProd" title="Un nom" value="" type="text">
...
<label for="descript">Description du produit</label>
...
<textarea name="descript" cols="30" rows="5" id="descript"></textarea>
...
  <input name="validNewProd" id="validNewProd" value="Enregistrer le produit" type="submit">
...
</form>
Le java-script:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
$(function (){
    $('#validNewProd').click(function(){  
        if(validateAddProduct()){ //Si les données sont bien valides (fonction tiers)
            var famille = $('#famille').val();
            var nom = $('#nameProd').val();
            var descript = $('#descript').val();
            $.post('file.php', {famille: famille, nameProd: nom, descript: descript}, function(data){
                alert(data);
            });
        }
       return false; 
    });
});
Data est vide si je laisse le fichier PHP en l'état. Mais si je supprime la condition, le retour s'effectue bien. Merci,
yann18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 12h39   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 019
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 019
Points : 45 111
Points : 45 111
tu envoies direct un json ?
faut peut petre le serializer non ?
sinon au niveau du format

Code :
 $.post('file.php', {"famille": famille, "nameProd": nom, "descript": descript}
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 12h41   #5
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 803
Points : 35 803
Citation:
Le problème qui se pose est que '$_POST['validNewProd']' n'est plus reconnu.
Code :
1
2
3
$.post('file.php', {famille: famille, nameProd: nom, descript: descript}, function(data){
    alert(data);
});
Mouais... c'est effectivement étonnant qu'un paramètre que tu n'envoies pas ne soit pas reconnu...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/06/2011, 12h45   #6
Membre Expert
 
Avatar de supersnail
 
Homme
Inscription : novembre 2006
Messages : 1 402
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2006
Messages : 1 402
Points : 1 991
Points : 1 991
Bonjour,

Ton problème est tout à fait normal: Lorsque tu fais une requête AJAX, tu n'envoies QUE les données que tu as mises dans ta liste de paramètezs. Or, dans ces données, "validNewPost" ne figure pas dedans, ce qui pose problème pour ta page PHP. Une solution serait de rajouter un "validNewPost" pouvant contenir n'importe quoi à ta liste de paramètres, pour que ta condition soit vérifiée
__________________
Toute question technique envoyée en MP ira directement à la poubelle

Un code ne marchera jamais,il n'a jamais reçu la capacité de se déplacer.
Inutile donc de dire "ça marche pas", donnez plûtot des informations précises afin de mieux pouvoir vous aider.


Grand gourou de la -attitude - Sauvons Internet!
supersnail est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 13h38   #7
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 019
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 019
Points : 45 111
Points : 45 111
ou de serializer le form pour transmettre toutes les données ...
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 14h43   #8
Membre du Club
 
Inscription : mars 2008
Messages : 274
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 274
Points : 50
Points : 50
Citation:
ou de serializer le form pour transmettre toutes les données ...
Ca serait la meilleure solution, mais en écrivant ceci:
Code :
alert($('#addProduct').serialize());
J'obtiens:
Code :
famille=4&nameProd=croissants&descript=+++++++++++++++++++++++++++++
Le bouton n'est pas pris en compte... Et ce n'est pas la première fois que je remarque ça avec cette fonction (à moins que je m'y prenne mal)
merci,
yann18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 14h49   #9
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 019
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 019
Points : 45 111
Points : 45 111
le bouton ???
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 15h07   #10
Membre du Club
 
Inscription : mars 2008
Messages : 274
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 274
Points : 50
Points : 50
Autant pour moi, selon la doc concernant .serialize(), les boutons type 'submit' ne sont pas pris en compte... Mais du coup et par rapport à mon problème, comment puis-je employer cette fonction alors que j'ai quand même besoin de cette donnée pour le fonctionnement du fichier PHP ? (merci supersnail et bovino)
merci,
yann18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 15h37   #11
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 019
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 019
Points : 45 111
Points : 45 111
quel interet de prendre un bouton en compte ???
pour savoir lequel à été cliqué ??? si tu as plusieurs forms sur la page pointant sur la même page d'action ...

utilise un champs hidden ?
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 15h48   #12
Membre du Club
 
Inscription : mars 2008
Messages : 274
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 274
Points : 50
Points : 50
Citation:
si tu as plusieurs forms sur la page pointant sur la même page d'action ...
c'est à peu près ça... Dans le fichier PHP, j'ai plusieurs actions possibles:
Code :
1
2
3
4
5
6
7
8
9
10
//Pour la création d'un nouveau produit
if (isset($_POST['validNewProd'])) {
$gestion_products->ajoutProduit_fiche($_POST);
echo Common_functions::$message;
}
 
//Pour l'update d'un produit
if (isset ($_POST['update_btn'])) {
...
}
D'où mon insistance sur ce foutu bouton... Il faut bien que je sache, même par ajax, lequel a été utilisé.
yann18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 15h52   #13
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 019
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 019
Points : 45 111
Points : 45 111
sur le onclick de tes boutons submit
mets une value du bouton dans un champ hidden tu feras ton routage en php sur un test sur le value du champs hidden ...
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 17h26   #14
Membre du Club
 
Inscription : mars 2008
Messages : 274
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 274
Points : 50
Points : 50
Ok, merci à vous tous.
yann18 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 20h52.


 
 
 
 
Partenaires

Hébergement Web