Problème avec javascript

Fermé
débutant web - 18 mars 2010 à 00:40
 debutant - 18 mars 2010 à 19:58
Je suis débutant en web.

j'ai inséré ce code

<form name="form">

<input name="a" type="radio" value="website" />Site web <br />
<input name="a" type="radio" value="email" />E-mail Marketing <br />

<input name="a4" type="button" value="Suivant" onclick="direct(document.form.a.value)"/>
</form>

j'ai défini auparavant la fonction direct en js:

function direct(ch)
{
if (ch=='website') alert ("la valeur de ch est");
location.href='website.php'
else if (ch=='email') location.href='email.php'
}
</script>



J'obtiens des erreurs lors de l'exécution la fonction direct.

Please sauve qui peut

4 réponses

Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
18 mars 2010 à 01:30
bonsoir,

tu as oublié des accolade, et je ne suis pas sur que location fonctionne comme ça.

function direct(ch) {
    if (ch=='website') {
        alert ("la valeur de ch est");
        location.href='website.php'
    }
    else if (ch=='email') location.href='email.php'
} 
Salut,

C'est le bordel avec JS et les boutons radio car ils retournent un tableau. Plutôt que de faire une boucle, une solution peut être pas la plus optimale mais tout autant efficace : ajoute des id dans tes input et passe par la fonction JS document.getElementById().checked. Si la fonction retourne true, c'est que l'input est checké, sinon, non.

Fonction JS :

function redir()
{
	if(document.getElementById("website").checked) document.location.replace("website.php");
	else if(document.getElementById("email").checked) document.location.replace("email.php");
}


Code HTML :

<form name="form" >
    <input name="a" type="radio" id="website" value="website" />Site web<br />
    <input name="a" type="radio" id="email" value="email" />E-mail Marketing<br />
    <input name="a4" type="button" value="Suivant" onclick="redir()"/>
</form>
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
18 mars 2010 à 07:23
ou mieux tu n'utilise pas de javascript pour un truc comme ça !

tu peux simplement faire une include en php sur la page qui réceptionne ton formulaire...

<form method="get" action="reception.php">
<input name="a" type="radio" value="website" />Site web <br />
<input name="a" type="radio" value="email" />E-mail Marketing <br />
<input type="submit" value="Suivant" />
</form>


reception.php

<?php

if(!empty($_GET['a'])) {
    if($_GET['a'] == 'website') include('website.php');
    else if($_GET['a'] == 'email') include('email.php');
}

?>


de cette manière celui qui n'utilise pas le javascript peut quand même utiliser ton code.
le problème en utilisant un formulaire plutôt qu'un lien c'est que tes pages ne seront pas référencées.

et si l'allure des url te sont importante tu peux remplacer action="reception.php" par action=""
mettre les conditions en haut de ta page.php qui contient ton formulaire et terminer la condition par un exit().

comme ça :

<?php

if(!empty($_GET['a'])) {
    if($_GET['a'] == 'website') include('website.php');
    else if($_GET['a'] == 'email') include('email.php');
    exit();
}
?>

<form method="get" action="">
<input name="a" type="radio" value="website" />Site web <br />
<input name="a" type="radio" value="email" />E-mail Marketing <br />
<input type="submit" value="Suivant" />
</form>



un petit url rewriting et ton url ressemble à ce que tu veux et c'est sans problème de compatibilité du au javascript
Merci pour votre aide! ça fait plaisir...