Pregunta:
Fecha: 19-02-2016 16:36:36
(En Español)
Ayuda por favor
Estoy intentando enviar por AJAX a la misma pagina para recibir por post pero no recivo nada. Estoy usando Laravel como framework.
Amigos espero desesperadamente su ayuda, gracias de antemano Votos: 2 - Respuestas: 4 - Vistas: 13 Compartir en: Google Facebook Twitter LinkedIn Link
Enviar dato de combobox a traves de la url en Laravel[No resuelta]
buenas, quiero enviar 2 variables a mi controlador (id y hora), el id es una variable php que la puedo enviar facimente atravez de a href="{{ route ('aprobacion',[$persona->id,$prueba])}}"class="btn btn-success btn-xs" method="post" >Aprobar</a> , el problema es que la variable hora la tengo q obtener de un combo box, no se si podira mandar de la misma manera que estoy mandando el id, adjunto mi codigo.Ayuda por favor
<title>Solicitudes de salida</title>
<script type="text/javascript" src="js/jquery.js"></script>
@extends("menuAdminSistemas")
@section("barra")
@if(Session::has('message'))
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
{{Session::get('message')}}
</div>
@endif
<?php
$prueba=2;
?>
<table class="table">
<thead>
<th>Motivo</th>
<th>Departamento</th>
<th>Hora</th>
<th>Prioridad</th>
<th>Destino</th>
<th>Autorizacion</th>
<th>Solicitante</th>
</thead>
@foreach($solicitud as $persona)
<tbody>
<td>{{$persona->motivo}}</td>
<td>{{$persona->depto}}</td>
<td>{{$persona->hora_solicitud}}</td>
<td>{{$persona->prioridad}}</td>
<td>{{$persona->destino}}</td>
<td>{{$persona->autorizacion}}</td>
<td>{{$persona->usuario_solicitante}}</td>
<td>
@if($persona->autorizacion=='No')
<!--{!!link_to_route('Solicitud.edit', $title = 'Aprobar', $parameters = $persona->id, $attributes = ['class'=>'btn btn-success btn-xs'])!!}-->
<a href="{{ route ('aprobacion',[$persona->id,$prueba])}}"class="btn btn-success btn-xs" method="post" >Crear Ruta</a>
@endif
</td>
<td>
@if($persona->autorizacion=='No')
{!!link_to_route('Reco.edit', $title = 'Denegar', $parameters = $persona->id, $attributes = ['class'=>'btn btn-danger btn-xs'])!!}
@endif
</td>
<td>
<SELECT name='hora'id='hora' SIZE=1 onChange="sacarHora()">
<OPTION VALUE="8:00">8:00</OPTION>
<OPTION VALUE="9:00">9:00</OPTION>
<OPTION VALUE="10:00">10:00</OPTION>
<OPTION VALUE="11:00">11:00</OPTION>
<OPTION VALUE="12:00">12:00</OPTION>
<OPTION VALUE="13:00">13:00</OPTION>
<OPTION VALUE="14:00">14:00</OPTION>
<OPTION VALUE="15:00">15:00</OPTION>
<OPTION VALUE="16:00">16:00</OPTION>
<OPTION VALUE="17:00">17:00</OPTION>
</SELECT>
</td>
</tbody>
@endforeach
</table>
@stop
<script type="text/javascript">
function sacarHora(){
var hora= document.getElementById("hora").value;
console.log(hora);
//$.post('http://localhost:8000/aprobarSalidas',{hora:hora});
$.ajax({
type: 'POST',
url: 'http://localhost:8000/aprobarSalidas',
dataType: 'html',
data: {'hora':hora},
success: function(data) {
console.log('datos enviados a php correctamente!' + data);
}
});
}
</script>
<?php
//$longitud = $_POST["hora"];
?>
Estoy intentando enviar por AJAX a la misma pagina para recibir por post pero no recivo nada. Estoy usando Laravel como framework.
Amigos espero desesperadamente su ayuda, gracias de antemano Votos: 2 - Respuestas: 4 - Vistas: 13 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 19-02-2016 18:14:25 Hola Juan, la linea "console.log(hora);" registra la hora correcta en consola de tu navegador? digamos, hasta ahí funciona tu código? (imagino que esa línea la has puesto para hacer debug).
Veo que estan encaminado, no deberías tener problemas con el envío por ajax.
Saludos, Votos: 1 - Link respuesta -
Fecha: 20-02-2016 04:34:10 Hola Fernando, funciona, solamente llega hasta esa parte, lo de AJAX ya no corre, mi pregunta es puedo enviar los datos a la misma pagina?, para despues recivir con post y luego recien enviar la variable por el botn? Votos: 1 - Link respuesta
-
Fecha: 21-02-2016 19:04:46 Hola Juan, la verdad no se como trabajar Laravel con ese botón <a> al cual le especificas un href y al mismo tiempo un atributo method="post", me resulta algo intelimágico, por lo que yo no lo habría así....
Mi consejo es que reformules todo, que crees un formulario que contenga un campo input type="hidden" con el id que quieres enviar, el select de la hora y el botón "aprobar" que haga el submit del form....,
Al margen de esto, algo que observo es que tienes en tu tabla 7 <th> y luego 9 <td>, esto no esta correcto... deben estar aparejados (de igual cantidad)
Espero que alguien que desarrolle en Laravel pueda aportar luz a tu pregunta.
Saludos, Votos: 0 - Link respuesta -
Fecha: 22-02-2016 12:54:31 Yo no se larave ,pero eso veo que lo puedes solucionar con jquery
te expongo codigo
en tu linea de codigo
<a href="{{ route ('aprobacion',[$persona->id,$prueba])}}"class="btn btn-success btn-xs" method="post" >Crear Ruta</a>
reamplaza por esto
<a href="javascript:void(0)" class="btn btn-success btn-xs" id="crear_ruta" codigo="<?php echo $persona->id">Crear Ruta</a>
ahora tendrias un js en el cual estaria tu funcion el cual seria asi
$(document).on('click','#crear_ruta',function(){ var codigo = $(this).attr('codigo'), hora = $("#hora option:selected").val(); $.post('http://localhost:8000/aprobacion',{ codigo : codigo , hora : hora },function(){ <!-- AQUI ES CUADO DEVUELVE LA REPUESTA --> }); })
saludos Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
