Comunidad de diseño web y desarrollo en internet online

¿Como comparo elementos de dos array?

Citar            
MensajeEscrito el 08 Mar 2018 03:32 am
Mi duda es la siguiente tengo una tabla que le voy llenando con los dados de la base de datos usando un while, pero también tengo una variable array donde almaceno una lista con los código de los repuestos previamente seleccionados por el usuario... con esa lista dentro del while uso un foreach para extraer cada código de la lista y compararlos con el extraído de la base de datos y si son iguale abilitar un checked en el checkbox correspondiente a cada repuesto; el roblema esta en que tengo do repuestos registrados en la base de datos y cuando seleciono los dos y voy a la tabla solo me aparece uno leccionado en vez de los dos.

este es el codigo

Código PHP :

<form action="editar.php" method="POST">

            <table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
              <thead>
                <tr>
                  <th>Cod.</th>
                  <th>Nombre / Descripción</th>
                  <th>Ficha Tecnica</th>
                  <th>Selección</th>
                </tr>
              </thead>
              <tfoot>
            <tr>
                 <th>Cod.</th>
                  <th>Nombre / Descripción</th>
                  <th>Ficha Tecnica</th>
                  <th>Selección</th>
                </tr>
              </tfoot>
              <tbody>
             
                 <?php
               while  ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {   
               
               $repuestos=$_SESSION['repuestos'];
               
               foreach($repuestos as $codrpst){ 
                  
               switch ($codrpst) {
                  
               case $row['codrepuesto']:
               
               $chk="checked";
               
               break;
               
               default:
               
               $chk="";
               
               break;
                        
               }
               
               }
               
               
               
               ?>
                <tr>
            
                 <td ><?php echo $row['codrepuesto'];?></td>
            <td ><?php echo $row['nombrepuesto'];?></td>
            <td ><?php echo $row['detallerpst'];?></td>
            <td><center>
            <label class="btn btn-info">
            <input type='checkbox' name="repuestos[]"* value="<?php echo $row['codrepuesto'];?>" <?php echo $chk;?>>
            </label></center>
            </td>
                </tr>
            <?php
            
            
                  }
                  
                  
               ?>




gracias de antemano por la ayuda....

Por Ezequiel210

0 de clabLevel



 

chrome
Citar            
MensajeEscrito el 25 Abr 2018 01:51 am
La razon,es por que en tu bucle de la tabla MYSQL, de la base de datos, pasa 1 vez
1,2,3,4,5 ... etc.

y tienes un foreach que esta correcto, pero lo que no esta correcto, es que el foreach, solo sirve para el CHECKBOX, y no para el HTML donde esta el INPUT

osea cuando entras al foreach, y tengas 3,4,5, hasta 9 iguales a la final siempre retornaras $chk="checked";

lo correcto seria que metas en el FOREACH

Código PHP :

 <td ><?php echo $row['codrepuesto'];?></td>
            <td ><?php echo $row['nombrepuesto'];?></td>
            <td ><?php echo $row['detallerpst'];?></td>
            <td><center>
            <label class="btn btn-info">
            <input type='checkbox' name="repuestos[]"* value="<?php echo $row['codrepuesto'];?>" <?php echo $chk;?>>
            </label></center>
            </td>
                </tr>

pero para que sea mas preciso, hagas un condicional,donde si no existen coincidencias en tu ARRAY por DEFAULT muestres el html correspondiente

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.