Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Actualizar Select desde otro Select

Estas en el tema de Actualizar Select desde otro Select en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas, tengo un problema con este archivo... funciona de la siguiente manera... Es un formulario para dar de alta un remito... Al cargar muestra un ...
  #1 (permalink)  
Antiguo 29/05/2018, 15:42
 
Fecha de Ingreso: julio-2009
Mensajes: 121
Antigüedad: 14 años, 8 meses
Puntos: 1
Actualizar Select desde otro Select

Buenas, tengo un problema con este archivo... funciona de la siguiente manera...

Es un formulario para dar de alta un remito... Al cargar muestra un Select con live-search... de los clientes....

Y abajo... hay otro select que te muestra todos los articulos/equipos que tenga ese cliente asignados...

El problema es que al yo seleccionar un cliente u otro debe actualizar el select de abajo y mostrarme SOLO sus articulos...(asignado al ID del Cliente)

Así como está me muestra TODOS los articulos que esten asignados a los usuarios (TODOS) si yo asigno un equipo a un usuario con un ID que no existe (osea a un usuario inexistente) no me lo muestra en el select... pero necesito solo me muestre los que corresponden al ID seleccionado
Este es el codigo PHP que ejecuta la vista

(Esta hecho en laravel, boostrap y jQuery)

Código PHP:
public function create()
    {
        
$clientes=DB::table('cliente')
            ->
where('tipo_persona','=','Cliente')
            ->
get();
        
$equipos=DB::table('equipo as equ')
            ->
join('cliente as c','equ.idcliente','=','c.idcliente')
            ->
select(DB::raw('CONCAT(equ.codigo," ",equ.nombre) AS equipo'), 'equ.idequipo')
            ->
where('equ.estado','=','Activo')
            ->
get();
        return 
view("services.service.create",["clientes"=>$clientes,"equipos"=>$equipos]);
    } 
Y esta es la vista que tiene el problema


Código PHP:
@extends ('layouts.admin')
@
section ('contenido')
      <!-- Default 
box -->
      <
div class="box">
        <
div class="box-header with-border">
          <
div class="row">
  <
div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
   <
h3>Nuevo Ingreso</h3>
   @if (
count($errors)>0)
   <
div class="alert alert-danger">
    <
ul>
    @foreach (
$errors->all() as $error)
     <
li>{{$error}}</li>
    @endforeach
    </
ul>
   </
div>
   @endif
            </
div>
        </
div>
   {!!
Form::open(array('url'=>'services/service','method'=>'POST','autocomplete'=>'off'))!!}
            {{
Form::token()}}
            <
div class="row">
             <
div class="col-lg-12 col-sm-12 col-md-12 col-xs-12">
                <
div class="form-group">
             <
label for="nombre">Cliente</label>
             <
select name="idproveedor" id="idproveedor" class="form-control selectpicker" data-live-search="true">
              @foreach(
$clientes as $cliente)
              <
option value="{{$cliente->idcliente}}">{{$cliente->nombre}}</option>
              @endforeach
              </
select>
            </
div>
       </
div>
            <
div class="col-lg-4 col-sm-4 col-md-4 col-xs-12">
               <
div class="form-group">
               <
label>Tipo de Comprobante</label>
               <
select name="tipo_comprobante" class="form-control">
               <
option value="Boleta">Boleta</option>
               <
option value="Factura">Factura</option>
               <
option value="Ticket">Ticket</option>
               </
select>
            </
div>
            </
div>
            <
div class="col-lg-4 col-sm-4 col-md-4 col-xs-12">
                 <
div class="form-group">
             <
label for="serie_comprobante">Serie del Comprobante</label>
             <
input type="text" name="serie_comprobante" value="{{old('serie_comprobante')}}" class="form-control" placeholder="Serie del Comprobante..">
            </
div>
            </
div>
               <
div class="col-lg-4 col-sm-4 col-md-4 col-xs-12">
                 <
div class="form-group">
              <
label for="num_comprobante">Numero del Comprobante</label>
              <
input type="text" name="num_comprobante" required value="{{old('num_comprobante')}}" class="form-control" placeholder="Numero del Comprobante..">
            </
div>
            </
div>
            </
div>
            <
div class="row">
            <
div class="panel panel-primary">
            <
div class="panel-body">
            <
div class="col-lg-4 col-sm-4 col-md-4 col-xs-12">
            <
div class="form-group">
            <
label>Articulo</label>
            <
select name="pidarticulo" id="pidarticulo" class="form-control selectpicker" data-live-search="true">
            @foreach(
$equipos as $equipo)
            <
option value="{{$equipo->idequipo}}">{{$equipo->equipo}}</option>
            @endforeach
            </
select>
            </
div>
            </
div>
            <
div class="col-lg-2 col-sm-2 col-md-2 col-xs-12">
            <
div class="form-group">
            <
label for="cantidad">Cantidad</label>
              <
input type="number" name="pcantidad" id="pcantidad" class="form-control" placeholder="Cantidad">
              </
div>
              </
div>
            <
div class="col-lg-2 col-sm-2 col-md-2 col-xs-12">
            <
div class="form-group">
            <
label for="precio_compra">Precio de Compra</label>
             <
input type="number" name="pprecio_compra" id="pprecio_compra" class="form-control" placeholder="P.Compra">
             </
div>
             </
div>
              <
div class="col-lg-2 col-sm-2 col-md-2 col-xs-12">
            <
div class="form-group">
            <
label for="precio_venta">Precio de venta</label>
             <
input type="number" name="pprecio_venta" id="pprecio_venta" class="form-control" placeholder="P.Venta">
            </
div>
            </
div>
            <
div class="col-lg-2 col-sm-2 col-md-2 col-xs-12">
            <
div class="form-group">
            <
button class="btn btn-primary" type="button" id="bt_add">Agregar</button>
            </
div>
            </
div>
            <
div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
            <
div class="table-responsive">
            <
table id="detalles" class="table table-striped table-bordered table-condensed table-hover">
            <
thead style="background-color: #A9D0F5">
            <
th>Opciones</th>
            <
th>Articulo</th>
            <
th>Cantidad</th>
            <
th>Precio Compra</th>
            <
th>Precio Venta</th>
            <
th>Subtotal</th>
            </
thead>
            <
tfoot>
            <
th>TOTAL</th>
            <
th></th>
            <
th></th>
            <
th></th>
            <
th></th>
            <
th><h4 id="total">$/ 0.00</h4></th>
            </
tfoot>
            <
tbody>              
            </
tbody>
            </
table>
            </
div>
            </
div>
            </
div>
            </
div>
           <
div class="col-lg-6 col-sm-6 col-md-6 col-xs-12" id="guardar">         
            <
div class="form-group">
            <
input name="_token" value="{{ csrf_token() }}" type="hidden"></input>
             <
button class="btn btn-primary" type="submit">Guardar</button>
             <
button class="btn btn-danger" type="reset">Cancelar</button>
            </
div>
            </
div>
            </
div>
                </
div>
            </
div>
        </
div>
        <!-- /.
box-body -->
        <
div class="box-footer">
          
Footer
        
</div>
        <!-- /.
box-footer-->
      </
div>
      <!-- /.
box -->

{!!
Form::close()!!}  
         @
push ('scripts')
         <
script>

SCRIPT ACA


         </script>
         @endpush
         @endsection 

Alguna idea como hacer esto?
  #2 (permalink)  
Antiguo 29/05/2018, 19:05
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Actualizar Select desde otro Select

Debes recargar el contenido mediante ajax, utiliza el evento onchange del select para llamar una consulta a la DB y rellena el segundo select.

Con puro PHP no se puede salvo que recargues la pagina enviando el ID seleccionado por GET o POST
  #3 (permalink)  
Antiguo 30/05/2018, 09:29
 
Fecha de Ingreso: julio-2009
Mensajes: 121
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Actualizar Select desde otro Select

Si lo estaba haciendo en ajax pero no me sale jajaja

hice todo el apartado de facturas con ajax me costó horrores pero en este, me estanqué.

Gracias por el dato
  #4 (permalink)  
Antiguo 30/05/2018, 10:50
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Actualizar Select desde otro Select

pues ajax es la unica forma si no quieres recargar la pagina.

que problema te dio? yo suelo usar axios combinado con vue en mis proyectos y es bastante sencillo aplicarlo

Etiquetas: jquery, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:45.