Questions de débutante (js/html/php)

Résolu/Fermé
donia - 7 juil. 2008 à 14:22
(Pabix) Messages postés 578 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 27 octobre 2009 - 7 juil. 2008 à 18:56
bonjour
je débute et je galère sur plein de petites choses qui ne doivent pas être bien méchantes. j'ai passé des heures à chercher avnt de poster mais c'est tellement des trucs de base que finalement je ne trouve pas de réponse!

mon 1er problème:
sur un <form action="javascript: controlesaisie(); miseàjour.php", comment faire pour ne débrancher sur miseàjour.php que si le controlesaisie() s'est bien déroulé? j'ai compris qu'il fallait mettre un return true ou return false dans le js mais comment le tester dans le <form action? (qui est du html généré en php)
j'espère que ma question est claire! (le code est en dessous)

j'ai un autre problème sur un formulaire. sur submit j'execute un ajouter.php en method post. dans le prog ajouter.php j'essaie de récupérer mes variables avec $_POST['nom_du_champ'] et ça ne marche pas!
je vous donne le bout de code:

* prog1 *
echo '<form name="recupselect" action="javascript:controlesaisie(); window.location.href = \'ajouter.php\'" method="post">';

echo 'Quantité : <select name="quantite">';
echo '<option value="0">Sélectionnez</option>';
echo '<option value="1"> 1</option>';
echo '<option value="2"> 2</option>';
echo '<option value="3"> 3</option>';
echo '</select>';

// mis à jour par une fonction js
echo '<input type="hidden" name="val1" id="val1">';
echo '<input type="hidden" name="val2" id="val2">';
echo '<input type="hidden" name="val3" id="val3">';

echo '<input type="submit" value="ajouter">';


echo '</form>';


* prog ajouter.php *
$val1 = $_POST['val1'];
$val2 = $_POST['val2'];
$val3 = $_POST['val3'];

je ne récupère rien ! nada! niet! nothing!
est-ce qu'il y a une erreur quelque part?

merci de votre aide, pas évident de débuter toute seule!
donia

9 réponses

(Pabix) Messages postés 578 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 27 octobre 2009 81
7 juil. 2008 à 14:26
Bonjour !

Déjà, c’est normal que vos variables val1, val2 et val3 ne valent rien, puisque vous avez des champs cachés, qui n’ont aucune valeur.

Enlevez l’attribut "hidden", mettez un argument à la balise input telle que « value="machin" », et vos variables devraient avoir un contenu.
0
merci pour ta réponse,
elles sont valorisées par une fonction js
echo "document.getElementById('val1').value=val1;";
echo "document.getElementById('val2').value=val2;";
echo "document.getElementById('val3').value=val3;";

je ne pense pas que le hidden soit la cause mais je vais essayer
donia
0
laetlastar Messages postés 58 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 15 mai 2011 5
7 juil. 2008 à 14:28
coucou,

pas besoin d'enlever le hidden, si elle les cache il doit y avoir une raison! il suffit de leur attribuer une value et tout ira beaucoup mieux ^^

Bon courage.

Pour ton probleme avec le javascript je ne sais pas, désolée!
0
(Pabix) Messages postés 578 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 27 octobre 2009 81
7 juil. 2008 à 14:29
J’ai fait enlever le hidden pour qu’elle puisse temporairement déboguer ; en effet, ce n’est pas nécessaire, mais mieux pour tester en pouvant bidouiller la valeur.
0
donia > (Pabix) Messages postés 578 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 27 octobre 2009
7 juil. 2008 à 14:41
bon, j'ai testé en mettant text au lieu de hidden, mes champs sont bien valorisés par le js.
le problème ne vient pas de là donc..
merci quand-même
donia
0
(Pabix) Messages postés 578 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 27 octobre 2009 81
7 juil. 2008 à 14:28
Deuxième chose : ajoutez un point virgule à la fin de votre Javascript.

Pour la première question :

if (controleSaisie()) window.href.location="machin.php";

Et affectez des valeurs de retour à la fonction controleSaisie.
0
merci de votre réponse,
concernant la 2ème chose, de quel js parlez vous? où ais-je oublié un ; ? chui miro mais je ne vois pas!

sinon j'ai testé if(controlesaisie()) ajouter.php et ça ne marche toujours pas, je vais dans ajouter.php même si le js return false.. je vous met le js en question et mon <form j'ai peut-être fait une erreur ou oublié qq chose,



echo '<script language="Javascript">';
echo 'function controlesaisie()';
echo '{';

// test qu'on ait bien saisi val1 et val2
echo 'var val1=document.getElementById("val1").value;';
echo 'var val2=document.getElementById("val2").value;';

echo "if(val1 == '') { ";
echo "alert('Vous n\'avez pas sélectionné la val1');";
echo "return false;";
echo '}';

echo "if(val2 == '') {";
echo "alert('Vous n\'avez pas saisi la val2');";
echo "return false;";
echo '}';
echo "return true;";
echo '}';
echo '</script>';

* coté appel du js *
echo '<form name="maselection" action="if(controlesaisie()) window.location.href = \'ajouter.php\';" method="post">';

merci de votre aide
donia
0
(Pabix) Messages postés 578 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 27 octobre 2009 81 > donia
7 juil. 2008 à 14:56
Bonjour, tu sais, en PHP tu peux faire des instructions multilignes tant que tu n’as pas refermé une quote :
echo '
<script language="Javascript">
function controlesaisie()
{

//test qu\'on ait bien saisi val1 et val2
var val1=document.getElementById("val1").value;
var val2=document.getElementById("val2").value;

if(val1 == "") { 
alert("Vous n\'avez pas sélectionné la val1");
return false;
}

if(val2 == "") {
alert("Vous n\'avez pas saisi la val2");
return false;
}
return true;
}
</script>
'; 
0
donia > (Pabix) Messages postés 578 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 27 octobre 2009
7 juil. 2008 à 15:01
ça alors!!!! incroyable !!!! et dire que je galère à rajouter les echo à chaque fois !!!!! pi effectivement c'est beaucoup plus lisible!!
nan mais des fois je me dis que je ferais mieux d'apprendre à tricoter !!!
chui verte de honte!
grand merci
donia
0
(Pabix) Messages postés 578 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 27 octobre 2009 81
7 juil. 2008 à 14:43
Bonjour, mettez des guillemets autour de vos assignations :

document.getElementById('val1').value="val1"; et pas
document.getElementById('val1').value=val1;

En l’état actuel la valorisation n’avait aucun effet sans ces guillemets !
0
si si c'est bien valorisé, val1 et val2 sont des paramètres récupérés par le js qui valorise les champs hidden.
et lorsque je ne met plus les champs en hidden je vois bien qu'ils sont valorisés.
merci quand-même, c'est bien le genre d'erreur que j'aurais pu faire!
donia
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
(Pabix) Messages postés 578 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 27 octobre 2009 81
7 juil. 2008 à 14:59
Pour vérifier que le formulaire est bien rempli avant de le soumettre :

tu peux faire <form onsubmit="return controlesaisie();">

Je te demande quelques heures, je m’absente pour dîner et rentrer chez moi.
0
argh,
et mon appel à ajouter.php je le met où?
<form onsubmit="return controlesaisie(); ajouter.php "> ??
bon appétit!
donia
0
(Pabix) Messages postés 578 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 27 octobre 2009 81
7 juil. 2008 à 15:06
Je me suis mis en retard…
Non, on ne mélange pas du JavaScript et des URL.

<form onsubmit="du code javascript" action="ajouter.php" method="post">
0
ça y est, avec votre aide j'ai pu solutionner le problème.

<form action="ajout.php" onsubmit="return controlesaisie()" method="post" name="recupselect">

voili voilou ça marche impec. j'ai vraiment failli me décourager!

ça existe pas un service genre "sos développement" qu'on puisse avoir au téléphone (même payant)? parce que moi je serais la première cliente d'un service pareil !

bonne soirée,
donia

je vais voir si je peux passer le message en "résolu"
0
(Pabix) Messages postés 578 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 27 octobre 2009 81
7 juil. 2008 à 17:21
Bonsoir… pourquoi un service « SOS Développement » ?

Pour tout vous dire, si vous allez sur IRC, notamment les canaux #php sur irc.freenode.net, vous trouverez du chat en direct avec toujours quelqu’un pour vous aider bénévolement…
0
hello!
contente de te "revoir"! je ne connais pas IRC et pour moi les canaux c'est comme une rivière creusée par l'homme, avec de l'eau qui coule. t'as qu'à voir le niveau.

ça fait 2 mois à tout casser que je me suis lancée dans tout ça après avoir été analyste-programmeur "à la papa" (comme i parait qu'on dit maintenant) pendant 12 ans. j'avais définitivement renoncé à faire de l'informatique et voilà que j'ai replongé! mais il est loin le temps des programmes "à plat" et du langage unique ! j'avoue que je m'emmêle un peu les pinceaux entre les différents langages !

cet aprèm j'ai failli renoncer à tout.
comme chaque jour :-)

amicalement
donia
0
(Pabix) Messages postés 578 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 27 octobre 2009 81
7 juil. 2008 à 17:40
Bonsoir Donia !
IRC, en fait, c’est un mode de communication entre internautes, très prisé des programmeurs, puisque le principe est d’avoir plusieurs personnes regroupées dans des « salons thématiques ».
En gros, pour aller sur IRC, il te faut un logiciel ; sous Windows, tu peux prendre X-Chat, ou l’extension ChatZilla pour Firefox.

Tu peux télécharger X-Chat Ici : https://www.silverex.info/

Une fois lancé, X-Chat te demandera sur quel serveur tu veux te connecter. D’habitude, les serveurs de Freenode rassemblent beaucoup de monde. L’avantage d’IRC sur MSN par exemple, c’est que MSN est dépendant des serveurs de Microsoft. Sur IRC, tu peux créer toi aussi un serveur IRC si tu le souhaites.

Une fois sur un serveur, tu peux rejoindre des canaux, dont le nom est préfixé par le symbole # (dièse). En l’occurrence, #php est un bon moyen d’obtenir de l’aide en PHP. À l’heure où je te parle, il y a plus de 600 personnes dans ce salon. Tu peux essayer #php-fr pour du français. Etc. Il y a le choix.

Si tu installes ChatZilla, tu pourras te connecter depuis Firefox en cliquant sur des liens du genre irc://irc.freenode.net/#php

Bonne continuation !
0
merci! je vais aller voir tout de suite, chui encore coincée sur un autre problème! :-s
bonne soirée
donia
0
ça y est! chui connectée sous IRC, je sens que je vais devenir une adepte! et que je vais casser les pieds à tout le monde ! ;-)
merci encore!

donia
0
(Pabix) Messages postés 578 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 27 octobre 2009 81 > donia
7 juil. 2008 à 18:56
Pas de quoi ! Bonne continuation !
0