2012-07-16 18 views
5

¿Hay alguna forma de enviar datos desde el controlador para ver? lo que estoy haciendo es que el usuario tiene la opción de enlaces y de acuerdo a los enlaces que los usuarios hagan clic, los datos correspondientes se pasan al controlador y se carga otra vista desde el controlador correspondiente a ese enlace. Pero no sé cómo hacer eso. estoy usando hoguera aquí es mi código del controlador: -parámetro de envío desde el controlador para ver

function my_tickets() { 
     $username = $this->auth->username(); 
     $this->load->model('helpdesk_model'); 
     $result_set = $this->helpdesk_model->my_tickets($username); 
     foreach($result_set->result() as $data) { 
      $title[] = $data->title; 
      $category[]=$data->category; 
      $priority[]=$data->priority; 
      $date[]=$data->date; 
      $post_status[]=$data->post_status; 
      $userfile_path[] = $data->userfile_path; 
     } 
     $arraysize=count($title); 
     Template::set('arraysize',$arraysize); 
     Template::set('title',$title); 
     Template::set('category',$category); 
     Template::set('priority',$priority); 
     Template::set('date',$date); 
     Template::set('post_status',$post_status); 
     Template::set('username',$this->auth->username()); 
     Template::set('userfile_path',$userfile_path); 
     Template::render(); 
    } 
    function full_post(){ 
     Template::render(); 
    } 
    } 

En mi parte del modelo: -

function my_tickets($username){ 
     $this->db->select('title,userfile_path,category,priority,date,post_status'); 
     $this->db->where('username',$username); 
     $result = $this->db->get('tbl_tickets'); 
     return $result; 
     } 

Mis puntos de vista son: -

<?php 
$arraysize =Template::get('arraysize'); 
$title[] = Template::get('title'); 
$category[]=Template::set('category'); 
$priority[]=Template::set('priority'); 
$date[]=Template::set('date'); 
$post_status[]=Template::set('post_status'); 
$username = Template::set('username'); 
$userfile_path = Template::set('userfile_path'); 
?> 
<h3>Total Number Of posts :&nbsp; <?php echo $arraysize; ?> </h3> 
<h2>Your Posts</h2> 
<?php echo "serail. title | category | priority | date of starting post | post status "; ?> 
<?php 
    for ($i=0; $i <$arraysize; $i++) { 
    ?> 
    <p> <?php echo ($i+1).". ".$title[$i]." | ".$category[$i]." | ".$priority[$i]." | ".$date[$i]." | ".$post_status[$i]; 
      echo "<a href=\"/helpdesk/full_post\">Click to see </a>"; 
     ?> 
    </p> 
    <?php 
    } 
    ?> 

En mi función de controlador full_post Quiero el parámetro que el usuario hace clic en el enlace click to see. helpdesk es mi nombre de controlador. helpdesk_model es el nombre de mi modelo. y my_tickets es el nombre de mi vista ...

Respuesta

1

que estoy haciendo esto con la ayuda del formulario utilizando campos ocultos: - He ligeramente cambiar mi página de vista de la siguiente manera: -

for ($i=0; $i <$arraysize; $i++) { 
    echo "<p>".($i+1).". ".$title[$i]." | ".$category[$i]." | ".$priority[$i]." | ".$date[$i]." | ".$post_status[$i]."</p>"; 
    echo form_open('/helpdesk/full_post'); 
    echo form_hidden('path',$userfile_path[$i]); 
    echo form_submit('submit', 'click to see'); 
    echo form_close(); 
    } 

y en la página del controlador que estoy haciendo: -

function full_post(){ 
     Template::set('path',$this->input->post('path')); 
     Template::render(); 
     } 

esto es lo que necesito, ¿es esta la buena manera de hacerlo ...? ¿Hay alguna otra mejor idea para hacerlo ...?

0

Cree una función de controlador con parámetro y proporcione los enlaces con el parámetro en ella.

echo anchor('controller/functionName/parameter','display text'); 

function functionName($parameter ='') 
{ 
    //Do something with the parameter here when user click on the displayed text. 
} 

No estoy seguro, si esto es lo que quiere, porque esto es algo muy fácil.

+0

No, yo no quiero esto. Quiero enviar un valor de la vista al controlador que es el enlace hecho clic por el usuario. supongo que en mi opinión tengo 3 enlaces a, byc, si el usuario hace clic en una función de controlador se llamará y el valor correspondiente a a se pasará de la vista a esa función – avinashse

+0

sí que se puede hacer utilizando la técnica anterior. Si crea un enlace a http://yoursite.com/controller/function/a, se pasará a a funcionar. De la misma manera puede tener otro enlace b. ¿Quieres pasar usando ajax? – Nish

+0

en realidad no quiero pasar mis detalles en el parámetro, esa es la cosa ... y no ajax mostrará el contenido en la misma página, pero tengo que llamar a otra vista desde el controlador – avinashse

Cuestiones relacionadas