Foros del Web » Programando para Internet » PHP »

Enviar ID vía Ajax

Estas en el tema de Enviar ID vía Ajax en el foro de PHP en Foros del Web. Que tal: A continuación explico detalladamente lo que necesito, espero y me puedan apoyar. Cuando seleccione el combo de Fecha de Solicitud me de el ...
  #1 (permalink)  
Antiguo 06/10/2014, 16:39
Avatar de alfonso70  
Fecha de Ingreso: septiembre-2014
Mensajes: 8
Antigüedad: 9 años, 6 meses
Puntos: 0
Pregunta Enviar ID vía Ajax

Que tal:

A continuación explico detalladamente lo que necesito, espero y me puedan apoyar.

Cuando seleccione el combo de Fecha de Solicitud me de el detalle en una tabla creada en HTML, esto con fines de que el usuario tenga una vista preeliminar antes de mandar a imprimir el formato de solicitud de vacaciones, con el detalle seleccionado.

Lo que no sé es como recuperar el ID (Id_Vacaciones) (llave primaria) de la tabla Vacaciones para poder mandar ese valor a digamos la página formato.php y que precisamente en esta pagina cree el formato de impresión. La información se carga vía Ajax a la página recibos.php.

Anexo mis códigos fuente y una muestra del módulo que estoy programado, creo que es más fácil ver el código y así saber exactamente lo que pretendo hacer. O bien lo que estoy haciendo y se pueda entender mejor mi punto.

https://drive.google.com/file/d/0B8edCSfz6ypgTmRTRUVJWVN6NFE/edit?usp=sharing

recibos.php

Código PHP:
<?php 
    
include_once("../config.php");
    include_once(
"data/workers.php");
?>

<!--Función JavaScript para buscar del 1er combo los valores del 2do -->
<script type="text/javascript">
$(function () {
document.getElementById("cbo_Solicitud").disabled=true;
         });

$(document).ready(function(){
    $("#cbo_Empleado").change(function(){
            $("#cbo_Empleado option:selected").each(function () {
            idEmpleados = $(this).val();
            $.post("data/dates.php", { idEmpleados: idEmpleados }, function(data){
            $("#cbo_Solicitud").html(data);
            document.getElementById("cbo_Solicitud").disabled=false;
            });
        });
    })
});
</script>

<!--Función JavaScript para buscar el detalle de la fecha seleccionada -->
<script type="text/javascript">
$(document).ready(function(){
    $("#cbo_Solicitud").change(function(){
            $("#cbo_Solicitud option:selected").each(function () {
            Empleados = $(this).val();
            fecha_vac = $(this).text();
            $.post("data/detail.php", { Empleados: Empleados, fecha_vac: fecha_vac }, function(data){
            $("#detalles").html(data);
            });
        });
    })
});

</script>

<table border="0">
        <tr>
        <td>
        Empleado:
        </td>
        
        <td>
        <select id="cbo_Empleado" name="cbo_Empleado">
            <option value="0" disabled selected>Seleccione un Empleado</option>
            <?php
            
//Carga de Combobox_Empleado
            
foreach ($rows as $row) {
            echo 
'<option value="'.$row['idEmpleados'].'">'.$row['name'].'</option>';
            }
            
?>
        </select>
        </td>
        </tr>
        
        <tr>
        <td>
        Fechas de Solicitud:
        </td>
        
        <td>
        <select id="cbo_Solicitud" name="cbo_Solicitud">
        </select>
        </td>
        </tr>

        <td colspan="2">
        <div style="clear: both;">&nbsp;</div>    
        </td>
        </table>
        
        <table border="0" id="hor-minimalist-b">
        <thead>
        <tr align="center">
            <th scope="col">D&iacuteas</th>
            <th scope="col">Semana</th>
            <th scope="col">Mes</th>
            <th scope="col">A&ntildeo</th>
            <th scope="col">Periodo</th>
            <th scope="col">Restantes</th>
            <th scope="col">Obs</th>
        </tr>
        </thead>
        <tbody id="detalles">
        </tbody>
        </table>
detail.php

Código PHP:
<?php
    
include_once("../../config.php");
    
//Paso de variable para la búsqueda de información para el detalle de la fecha
    
$fecha_vac date('Y-m-d'strtotime($_POST['fecha_vac']));
    
$Empleados $_POST['Empleados'];

    
//Establecer conexión a BD, Se declaran las variables a usar
    
$con = new PDO(DB_DSN,DB_USERNAME,DB_PASSWORD,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); 
    
$result "";
    
    
//Se crea la consulta y se almacena en la variable $rows
    
$sql "SELECT idVacaciones, idEmpleados, dias, semana, mes, anio, periodo, diasRes, obs FROM vacaciones WHERE fecha_vac = '$fecha_vac' AND idEmpleados = $Empleados";
    
$stmt $con->query($sql);
    
$rows $stmt->fetchAll();

    
//Manejo de error
    
if(empty($rows)){ 
       
$result2 "Posible error en conexión y/o No hay datos";
    }
    
    
//Carga de Combobox_Fecha_Solicitud
    
foreach ($rows as $row) {
    
$mes=$row['mes']+1;
    
$html .= '<tr align="center">
              <td>'
.$row['dias'].'</td>
              <td>'
.$row['semana'].'</td>
              <td>'
.$mes.'</td>
              <td>'
.$row['anio'].'</td>
              <td>'
.$row['periodo'].'</td>
              <td>'
.$row['diasRes'].'</td>
              <td>'
.$row['obs'].'</td>
              <td><input type="radio" id="key" name="key" value="'
.$row['idVacaciones'].'"></td></tr>';
    }
    
    echo 
$html;
        
    
//Cerramos conexión y limpiamos la variable de consulta
    
$stmt=null;
    
$con=null;
?>
  #2 (permalink)  
Antiguo 07/10/2014, 02:00
 
Fecha de Ingreso: octubre-2014
Ubicación: Tercer planeta solar
Mensajes: 4
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Enviar ID vía Ajax

Si no he entendido mal lo que solicitas, y viendo el código, el idVacaciones viene en la tabla que generas después de seleccionar el segundo combo. Ese valor lo tienes en el input tipo radio.

Como consejo no es bueno que dos elementos compartan ID, lo cual ocurre ahora mismo en tu código, yo adjuntaría el idVacaciones al generar la tabla, quedando el último campo así:

Código:
<td><input type="radio" id="key_"'.$row['idVacaciones']'" name="key" value="'.$row['idVacaciones'].'"></td></tr>';
Aparte de ese detallito creo no haber entendido bien tu duda puesto que el valor de idVacaciones lo tienes precisamente en ese campo ¿Tu duda es cómo recuperar ese valor?
  #3 (permalink)  
Antiguo 07/10/2014, 08:11
Avatar de alfonso70  
Fecha de Ingreso: septiembre-2014
Mensajes: 8
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Enviar ID vía Ajax

Muchas gracias por la retro alimentación.

Efectivamente es lo que no puedo lograr, o más bien no sé como hacerlo, una vez que hago el echo recuperar ese ID para mandarlo a otra página. Pero desde la página recibos.php hacia cualquier otra.

Etiquetas: ajax-php-mysql
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 17:40.