Soy nuevo en CodeIgniter y acabo de descubrir las dificultades con el método GET de pasar variables a través de la URL (por ejemplo, domain.com/page.php?var1=1 & var2 = 2).CodeIgniter: Pasar variables a través de URL - alternativas a usar GET
Entiendo que un enfoque es pasar las variables en los segmentos de URI, pero todavía no he descubierto cómo hacerlo, ya que parece crear la expectativa de tener una función en el controlador nombrado como el segmento de URI específico ????
De todos modos En lugar de usar GET, he decidido usar POST adaptando un botón de envío (disfrazado como un enlace) con las variables en los campos de entrada ocultos. He creado la siguiente solución que parece funcionar bien, pero me pregunto si estoy en el camino correcto o si hay una manera más fácil de pasar variables a través de un enlace dentro de CodeIgniter.
He creado la clase siguiente en application/libraries/
<?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 el siguiente 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;
}
Enlace entonces ha creado usando el siguiente código en la vista:
<?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);
?>
Gracias por su ayuda ...
Gracias, este es el tipo de ayuda que estaba buscando, aunque creo que puede tomar un poco de tiempo darme cuenta de cómo usar los segmentos de URI correctamente. –
es una buena solución académica. Pero Twitter, eBay y otros siguen usando get. También obtener es un estándar (sí, de hecho es protocolo HTTP!). Por lo tanto, todas esas discusiones no tienen sentido. El verbo HTTP GET no es compatible con Codeigniter, lo que hace que el marco sea algo inutilizable, dando el hecho de que es un marco http. Buena solución, pero no es para la web. –