2010-08-04 7 views
0

J'ai un formulaire dans CodeIgniter, et j'ai besoin de changer l'action du formulaire en fonction de ce qui est dans le formulaire actuel.Action de formulaire dynamique - Déterminer une action avec des variables

-à-dire: si je <select name="type"> == business besoin action="business/submit"

est-il un moyen simple de le faire?

Pour l'instant, ma tentative de contournement consiste à utiliser Javascript pour récupérer les données des entrées, puis les envoyer à un lien généré dynamiquement - mais ce n'est pas idéal pour ma situation.

Pensées?

+1

Vous ne pouvez pas changer quelque chose côté client, sauf si vous utilisez un langage côté client comme JavaScript comme vous le faites actuellement. – Luke

+1

gamerzfuse - je suis vaguement au courant de codeignitor. ce n'est pas son architecture MVC ?? Dans ce cas, l'action de votre contrôleur doit créer la vue appropriée pour vous (que ce soit créer/modifier/supprimer etc en fonction de l'action). –

Répondre

1

Je n'ai jamais travaillé sur CodeIgniter mais je peux vous dire comment vous pouvez le faire en PHP.

Vous devez comprendre que vous ne pouvez pas faire cela "dynamiquement" sans Javascript. Comme vous avez suggéré que vous ne souhaitez pas utiliser Javascript, je vous suggère une façon crasse de gérer cette situation.

Vous ne pouvez pas modifier l'attribut action avec PHP seul, nous devrons donc le publier dans un fichier PHP, puis en fonction de la sélection (à partir de votre boîte de sélection) vous pouvez inclure le fichier dont vous avez besoin. Vous pouvez utiliser l'interrupteur ou si vous préférez.

Ceci est juste indicatif. S'il vous plaît, ne me brûlez pas de ne pas suivre les normes ou de ne prendre aucune mesure de sécurité!

<?php 
    // sample code snippet 

     if($_POST['type']=== 'something') { 
      include 'something.php'; 
     } 
     else if($_POST['type']=== 'somethingElse') { 
      include 'somethingElse.php'; 
     } 
     else { 
      include 'totallyDifferentOne.php'; 
     } 

    // continue your code 

?> 
+0

Eh bien, ce n'est pas que je suis opposé à l'utilisation de Javascript, je n'aime pas celui que j'utilise. Ce que je ferai probablement, c'est d'utiliser jQuery et de définir l'attr d'ACTION sur quelque chose d'autre sur Sujet. –

+0

C'est une façon plus simple de le faire côté client, mais considérez le cas si votre utilisateur de formulaire est sur un appareil qui n'a pas de javascript. Il/Elle/Il peut ne pas être en mesure de soumettre le formulaire, ou il/elle finira par soumettre le formulaire au mauvais dossier. Ne supposez jamais rien! –

0

Je ne suis pas familier avec CodeIgnitor, mais ne pouvez-vous pas envoyer le formulaire à une action unique qui lirait le type et transmettrait la requête à l'action à laquelle vous voulez qu'elle se rende?

Questions connexes