Sono nuovo di CodeIgniter e ho appena scoperto le difficoltà utilizzando il metodo GET di passare le variabili tramite l'URL (ad esempio domain.com/page.php?var1=1 & var2 = 2).CodeIgniter: passaggio di variabili tramite URL - alternative all'utilizzo di GET
Io capisco che un approccio è quello di passare le variabili nei segmenti URI ma non hanno ancora capito come farlo ancora come sembra creare l'aspettativa di avere una funzione nel controller chiamata come segmento URI specifico ????
In ogni caso, invece di utilizzare GET, ho deciso di utilizzare il POST adattando un pulsante di invio (mascherato come collegamento) con le variabili nei campi di input nascosti. Ho creato la seguente soluzione che sembra funzionare bene, ma mi chiedo se sono sulla strada giusta qui o se c'è un modo più semplice per passare le variabili tramite un collegamento all'interno di CodeIgniter?
ho creato la seguente classe di applicazioni/librerie/
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class C_variables {
function variables_via_link($action, $link_text, $style, $link_data) {
$attributes = array('style' => 'margin:0; padding:0; display: inline;');
echo form_open($action, $attributes);
$attributes = array('class' => $style, 'name' => 'link');
echo form_submit($attributes, $link_text);
foreach ($link_data as $key => $value){
echo form_hidden($key, $value);
}
echo form_close();
}
}
?>
Con il seguente CSS:
/*
SUBMIT BUTTON AS LINK
adapted from thread: http://forums.digitalpoint.com/showthread.php?t=403667
Cross browser support (apparently).
*/
.submit_as_link {
background: transparent;
border-top: 0;
border-right: 0;
border-bottom: 1px solid #00F;
border-left: 0;
color: #00F;
display: inline;
margin: 0;
padding: 0;
cursor: hand /* Added to show hand when hovering */
}
*:first-child+html .submit_as_link { /* hack needed for IE 7 */
border-bottom: 0;
text-decoration: underline;
}
* html .submit_as_link { /* hack needed for IE 5/6 */
border-bottom: 0;
text-decoration: underline;
}
link quindi creato utilizzando il seguente codice nella visualizzazione:
<?php
$link = new C_variables;
$link_data=array('var1' => 1, 'var2' => 2);
$link ->variables_via_link('destination_page', 'here is a link!',
'submit_as_link', $link_data);
?>
Grazie per il vostro aiuto ...
Grazie, questo è il tipo di aiuto che stavo cercando, anche se penso che potrebbe volerci un po 'di tempo per capire come usare correttamente i segmenti URI. –
è una buona soluzione accademica. Ma twitter, ebay e altri continuano a usare get. Anche ottenere è uno standard (sì, in effetti è un protocollo HTTP!). Quindi tutte le discussioni non hanno alcun senso. Il verbo HTTP GET non è supportato da Codeigniter, che rende il framework un po 'inutilizzabile, dando il fatto che si tratta di un framework http. Buona soluzione, ma non è per il web. –