2015-07-15 18 views
5

Voglio passare il valore che sto prendendo dal javascript a un controller. Ma io non uso alcuna funzione. Voglio solo accedere al valore che ottengo dalla vista nel controller. Ho la seguente visione.CodeIgniter - Come passare un valore da una vista a un controller?

<select id="selected_year" name="selected_year" data-live-search="true" style="margin-left: 27px;" >   
<option value="2015">2015</option> 
<option value="2016">2016</option> 
<option value="2017">2017</option> 
<option value="2018">2018</option> 
<option value="2019">2019</option> 
<option value="2020">2020</option> 
<option value="2021">2021</option> 
<option value="2022">2022</option> 
<option value="2023">2023</option> 
<option value="2024">2024</option> 
</select> 

Sto ottenendo il valore del menu a discesa utilizzando il seguente javascript.

<script type="text/javascript"> 
    $("#selected_year").live('change', function() { 
     var selected_year = $(this).attr("value"); 

     alert(selected_year); 
     window.location.reload(); 

    }); 
</script> 

Voglio solo passare il valore che sto ottenendo da javascript sopra in un controller. È possibile farlo?

+1

provare a utilizzare AJAX. –

+0

dove vanno esattamente i tuoi dati? – mokNathal

+1

jQuery 'live()' è stato deprecato per anni. – charlietfl

risposta

1

L'operazione potrebbe essere eseguita inviando una richiesta POST che verrebbe inviata a un'azione del controllore (in modo sincrono o asincrono, a seconda delle necessità) o passandola come stringa di query nell'URL e verificando la presenza nel proprio controller.

+0

Stai cercando chiamate Php Jquery Ajax. Se è così, ci sono così tanti esempi là fuori. Spero che questo aiuti: http://stackoverflow.com/questions/17590688/jquery-ajax-post-in-codeigniter. – jones

0

è possibile inviare la visualizzazione dei dati sotto forma di controller tramite tre vie

1.POST ,GET(form submitio). 
2.making it in link(URi segment) 
3.via Ajax 
+0

Non ho una funzione controller qui. Voglio solo prendere il valore drop down e inviarlo al controller. senza avere una funzione controller posso usare Ajax? –

+0

sì no. C'è una funzione change() per dropdown.in jqury $ ('# yourdropdownid'). Chnage (function() { alert ('here) // per verificare che funzioni // la tua chiamata ajax qui }); –

+0

Sto chiedendo qualcosa di diverso. Nel metodo ajax dobbiamo inviare l'url. il che significa il metodo del controller. Perché non ho un metodo di controllo come posso farlo? –

-1

Creare un controller per fornire la parte dinamica del URL.

<script type="text/javascript"> 
$("#selected_year").live('change', function() { 
    var selected_year = $(this).attr("value"); 

    // NEXT 2 LINES ARE THE SOLUTION. substitute your own controller URL on the next line. 
    $url = '<?= base_url()index.php/controller/method?>/'+selected_year+''; 
    window.location.reload($url); 

}); 
</script> 

Ecco il controller:

function method($year){ 
    echo $year; 
} 
+0

per favore spiega la tua risposta, non limitarti a postare codice. –

+0

scusa fratello, la prima volta che ho postato una risposta qui. la prossima volta fornirò anche una piccola spiegazione :) –

0

È possibile utilizzare AJAX per presentare il cambiamento all'utente ogni discesa

var data = $('#selected_year').val(); 

    $("selected_year").on('change',function(){ 

    $.ajax({ 
     url: yourcontroller, 
     type: 'POST', 
     data: data, 
     success: function (data) { 

     }, 
    }); 

    }); 
Problemi correlati