2010-01-14 5 views
0

J'ai un formulaire, en fonction de la valeur sélectionnée de ma boîte <select> Je voudrais envoyer à une autre page. Je ne connais pas la meilleure façon de le faire, mais je pense que peut-être le meilleur moyen est d'avoir une page intermédiaire à toujours publier, puis avoir la page intermédiaire vérifier la valeur envoyée à partir de la boîte <select> et de l'avant les valeurs POST à ​​une page différente en fonction de ce que c'est. Si c'est le meilleur moyen, comment puis-je faire cela? Si non, quelle est la meilleure façon?POSTER à une autre page en fonction de la valeur SELECT?

Merci!

+0

Javascript serait probablement le moyen le plus simple de le faire, cherchez-vous un pseudocode? – Zack

+0

OK tant de gens recommandent d'utiliser javascript, quelqu'un peut-il s'il vous plaît poster un exemple? Merci. –

Répondre

1

Voilà une bonne façon. L'alternative est d'utiliser Javascript pour intercepter le clic, réécrire la propriété action du formulaire et .

Pour votre PHP si:

Première page:

 
<form action="intermediary.php" method="post"> 
    <input id="submitTo"> 
    <select value="1">goToFirstPage</select> 
    <select value="2">goToSecondPage</select> 
    </input> 
</form>

la page Deuxième:

 
<?php 
    $url = ""; 
    if($_POST["submitTo"] == "1") $url = " http://mysite.com/firstPage.php ";

if($_POST["submitTo"] == "2") $url = "http://mysite.com/secondPage.php"; 

header ("Location: $url");  
?> 

Ne pas mettre les URL réelles dans votre première page, ou vous allez rencontrer des problèmes de sécurité massives.

1

ce serait certainement la meilleure méthode pour la compatibilité de l'utilisateur.

vous pouvez le faire en utilisant l'en-tête de redirection HTTP, par ex.

header("Location: http://www.example.com/"); 

qui doit être appelée avant toute sortie sur la page. De cette façon, l'utilisateur n'atterrira même pas sur la page intermédiaire lorsqu'il appuie sur les boutons avant/arrière. La seule autre option que je vois serait d'utiliser javascript pour changer la forme du formulaire ou quelque chose qui va avec ces lignes, mais cela a quelques restrictions (javascript doit être activé, code plus compliqué, la redirection ne devrait pas vraiment se produire dans le affichage d'une page)

0

j'utiliser javascript pour changer la cible de la forme

si vous voulez vraiment utiliser php, vous devriez essayer curl:

0

javascript

function form_submitted(){ 
    switch(document.myform.select_name.value){ 
    case 'whatever': 
     document.myform.target.value = "whatever_you_need"; 
     break; 
    case 'whatever2': 
     document.myform.target.value = "whatever_you_need_2"; 
     break; 
    } 
} 

alors soit d'attribuer cette fonction à la forme avec l'attribut « onSubmit », ou un bouton (plutôt que le bouton soumettre) qui appelle cette fonction et ajouter document.myform.submit() à la fin de la fonction.