2011-10-04 3 views
1

J'ai un prix de valeur dans un span dans mon fichier de vue et je veux passer la valeur de cette envergure à mon contrôleur sans soumettre un formulaire, est-il un moyen de le faire?passant la variable de view-> controller dans codeigniter

+4

Réponse courte: Non CI Unidirectionnel du contrôleur pour voir – danneth

+0

Cela soulève la question: "comment obtenez-vous cette valeur dans votre vue?" - Vous n'utilisez probablement pas MVC comme il est conçu. Vous devriez avoir toutes les données dans (ou accessibles depuis) ​​votre modèle, transmettre ces données à votre contrôleur (pour calculer, formater, etc.), puis passer les variables finales à votre vue pour l'affichage. Je ne peux pas vraiment voir pourquoi vous auriez une valeur à votre avis sans passer d'abord par votre contrôleur. – swatkins

+0

La valeur ne peut être qu'à partir de la vue, c'est un champ span qui affiche le xy offest actuel d'une boîte en utilisant javascript, comment le feriez-vous à partir d'un contrôleur lol btw valeurs peuvent être transmises de la vue au contrôleur en utilisant une méthode formulaire mais cette fois je n'utilise pas un formulaire .. –

Répondre

2

Oui, vous pouvez utiliser quelque chose comme AJAX. Cependant, vous pensez à tout faux, vous ne passez pas d'un VIEW => CONTROLLER, vous êtes toujours en train de faire une soumission d'utilisateur, et vous n'avez qu'à gérer cette entrée.

Alors vous feriez un contrôleur COMME un formulaire standard soumettre, vous pouvez utiliser jQuery pour vous y en utilisant sa fonction .ajax():

$.ajax({ 
    type: "POST", 
    url: "/mycontroller/function/", 
    data: "name=John&location=Boston", 
    success: function(msg){ 
    alert("Data Saved: " + msg); 
    } 
}); 

Référence: http://docs.jquery.com/API/1.1/AJAX

+0

merci pour l'aide, donc si j'ai laissé dire une valeur de 10 dans la durée. et je veux que les données dans le contrôleur sans soumettre un formulaire. Mal faire comme vous l'avez dit ici, mais je ne comprends pas vraiment comment les données seront transmises, quelle variable sera-t-elle stockée dans le contrôleur? –

+0

@ TommyD.Adey, vous êtes toujours confus. Pensez-y comme un formulaire soumis, sauf si vous le demandez, sans actualisation de la page. Le '$ .ajax' fn est utilisé pour transmettre de façon transparente ces données (POST) à votre backend (contrôleur). Dans le contrôleur, vous devez capturer/valider ces valeurs comme s'il s'agissait d'un standard '$ _POST ['name']' ou '$ _POST ['location']' (comme dans l'exemple que j'ai utilisé). Donc, pour finir, votre vue hébergera le code ajax Javascript, et votre classe de contrôleur (en créer une nouvelle) capturera la soumission. L'emplacement 'success' gère votre réponse à l'utilisateur (notifier en cas de succès ou d'échec). – Jakub

+0

J'envoie la valeur $ start de la vue au contrôleur mais l'erreur est indéfinie index start pour $ start = $ _POST ['start']; –