Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/04/2010, 08:17
thixko
 
Fecha de Ingreso: enero-2010
Mensajes: 13
Antigüedad: 14 años, 3 meses
Puntos: 0
problemas con el checkbox

Hola mentes ilustradas de forosdelweb.

Espero me puedan orientar en la siguiente cuestión, estoy tratando de insertar una columna en una tabla ya elaborada en un programa que realizó otra persona que ya no labora en la empresa en la que trabajo, realmente en su código hay muuuuchas cosas que no se que significan y que he ido investigando, al parecer la tabla la despliega en el siguiente array, yo introduje en ese array la columna que se necesita, dicha columna debe contener por cada línea un checkbox el cual si es checado significa que el material ha sido recibido, solamente que no se la manera de guardar los datos en la tabla identificando cada checkbox como único. Parte del código se encuentra en seguida, en el cuál está el array que despliega la tabla.

Traté de elaborarlo con imágenes. En caso de que se recibiera el pedido aparecía una palomita y en caso contrario un tache, pero se tenía que cargar la página de nuevo cada que se daba clic en la imagen y pues era muy tedioso y tardado (esta parte que menciono se encuentra en la parte del else if del código que está enseguida)

Código PHP:
$pager = new pager(array(
                         
"query" => $query,
                         
"doNotUseCache" => true,
                         
"filter" => $filter,
                         
"extendedFilter" => $extendedFilter,
                         
"currentPage" => $_GET["currentPage"],
                         
"pageSize" => 500,
                         
"sort" => $sort,
                         
"defaultTitleHeader" => "nowrap",
                         
"showFields" => array(
                                               
"".($app["permissions"]["erase"]==1?"c1":"")."" => 1
                                               
"".($app["permissions"]["erase"]==1?"c2":"")."" => 1,    
                                               
"".($app["permissions"]["erase"]==1?"c6":"")."" => 1,                                                                                      
                                               
"fdpid" => 1,
.......

"changeCellForFilter" => array(
                                        
"c2" => "\".eval(\"
                                                                  if('{recibida}' == 0)                                                                                                                                 
                                                                                  return '<input type=\'checkbox\' name=\'checa[]\'>';
                                                                  else if('{recibida}' == 1 ) 
                                                                                  return '<a onClick=\'if(confirm(\\\"¿Material sin recibir?\\\"))return true;else return false;\' href=\\\"?action=delete&corre={corre}&noodc={noodc}&pago={pago} \\\"><img src=\'"
.IMAGES_DIR."tick.png\' title=Deshabilitar border=0 alt=Deshabilitar></a>'; 
                                                                        \").\""
,
.......

if (
$pager->connectionFailed) {
        
$smarty->assign("errorMessage","No se puede tener acceso a la base de datos. Es posible que esté en uso en este momento.".$conn->_errorMsg);
        
$smarty->assign("errorLevel",$conn->_errorMsg);
    }
    
$smarty->assign("griddata",$pager->GRIDDATA);
    
$smarty->assign("navmenus",$pager->NAVMENUS);
    
$smarty->assign("next",$pager->nextPageLink);
    
$smarty->assign("prev",$pager->prevPageLink);
    
$smarty->assign("registros",$pager->numOfRecords); 
El botón submit está en un archivo "tpl"

Código PHP:
 <tr>
        <
td>
        {
$prev}&nbsp;{$navmenus}&nbsp;{$next}
        </
td>
    </
tr>
    <
tr>
        <
td>
        {
$griddata}
        </
td>
    </
tr>
    </
tr>    
    <
tr>
        <
td>
        {
$prev}&nbsp;{$navmenus}&nbsp;{$next}
        </
td>
    </
tr>
    <
tr>
        <
td>
        <
input type=hidden name=parametro value={$registros}>
        <
input type=submit class=button name=guardar value='Guardar cambios'>
        </
td>
    </
tr>
</
TABLE
El value del hidden lo tomé de esta parte del archivo ".php" $smarty->assign("registros",$pager->numOfRecords); para realizar el conteo de cuantas líneas y por lo tanto cuántos checkbox despliega el array, ya que varía la cantidad de líneas dependiendo de cuantas coincidan con el número de pedido.

En esta parte es donde modificaba a "recibida" para que cuando cargara la página de nuevo me apareciera la otra imagen

Código PHP:
if(isset($_GET["action"]) && ($_GET["action"] == "delete") && isset($_GET["noodc"]) && isset($_GET["corre"]) && isset($_GET["recibida"])){    
    
$cambiar "UPDATE odc
                SET recibida=0
                WHERE noodc="
.$_GET["noodc"]." AND corre=".$_GET["corre"]."";
    
$rescamb $conn->Execute($cambiar) or die ($conn->ErrorMsg()."<br />$cambiar");
    
$smarty->assign("buscarODC"$_GET["noodc"]);

Espero me haya explicado.... muchas gracias y que tengan un excelente día