Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/10/2018, 12:26
madison_sg
 
Fecha de Ingreso: noviembre-2015
Mensajes: 77
Antigüedad: 8 años, 5 meses
Puntos: 2
Petición de Ajax para un array de php

Hola,

He creado una petición de ajax para introducir el código postal y que se despliegue la ciudad, estado, municipio y colonia. Funciona muy bien cuando se trata de una sola petición, pero en mi caso tengo que uno solo de mis registros cuenta con dos o tres domicilios, resolví la parte de php con un arreglo de un foreach y aunque sé que la lógica puede ser la misma; no tengo muchos conocimientos de ajax, entonces cuando se crean los campos de más de un domicilio mi petición solo funciona con el primer domicilio y el resto simplemente no los detecta.

Este es mi código php ligado al ajax:
Código PHP:
<?php
include('conexion.php');

$dato $_POST['dato'];

//EJECUTAMOS LA CONSULTA DE BUSQUEDA

$registro mysqli_query($con"SELECT codigo_postal, estado, municipio, ciudad, area_metropolitana, brick_atv, brick_ims, zona_postal FROM sepomex WHERE codigo_postal = '$dato' LIMIT 1");


//CREAMOS NUESTRA VISTA Y LA DEVOLVEMOS AL AJAX
$i 1;
            foreach (
$registro as $registro2) {

   
                
        echo
"código postal<input type='text' name='codigo_postal[$i]' id='codigo_postal' minlength='5' maxlength='5' onkeypress='return justNumbers(event)' readonly='readonly' style='width:50px;' value='".$registro2['codigo_postal']."'</input>";
        
                        echo
"estado<input type='text' name='estado[$i]' id='estado' readonly='readonly' value='".$registro2['estado']."'</input>
                        municipio<input type='text' name='municipio[$i]' id='municipio' readonly='readonly' value='"
.$registro2['municipio']."'</input>
                        ciudad<input type='text' name='ciudad[$i]' id='ciudad' readonly='readonly' value='"
.$registro2['ciudad']."'</input></br></br>
área metropolitana<input type='text' name='area_metropolitana[$i]' id='area_metropolitana' readonly='readonly' style='width:30px; margin-left:50px;' value='"
.$registro2['area_metropolitana']."'</input>
                        brick atv<input type='text' name='brick_atv[$i]' id='brick_atv' readonly='readonly' value='"
.$registro2['brick_atv']."'</input>
                        brick ims<input type='text' name='brick_ims[$i]' id='brick_ims' readonly='readonly' value='"
.$registro2['brick_ims']."'</input>
                        zona postal<input type='text' name='zona_postal[$i]' id='zona_postal' readonly='readonly' style='width:30px;' value='"
.$registro2['zona_postal']."'</input>";
    
        
                
                        echo
"colonia<select name='colonia[$i]' id='colonia'>";
                        
$reg mysqli_query($con"SELECT colonia FROM sepomex WHERE codigo_postal='$dato'");
                        while (
$registro2=mysqli_fetch_array($reg)) {
                        echo
"<option value='".$registro2['colonia']."'>".$registro2['colonia']."</option>";
                        }
                        echo
"</select>";
                        
$i++;
                
}

?>
Este es mi código de ajax:
Código PHP:
$(function() {
    $(
'#bs-prod').on('keyup', function() {
        var 
dato = $('#bs-prod').serialize();
        var 
url '../php/busca_registro.php';
        $.
ajax({
            
dataType'json',
            
type'POST',
            
urlurl,
            
data'dato=' dato,
            
success: function(datos) {
                $(
'#agrega-registros').html(datos);
            }
        });
        return 
false;
    });
}); 
Este es el código del index:
Código PHP:
 echo"<input type='text' placeholder='Buscar Código Postal' id='bs-prod' name='bs-prod[$i]'/>";  

echo
"<div class='registros-uno' id='agrega-registros' name='agrega-registros[$i]'>código postal<input type='text' name='codigo_postal[$i]' id='codigo_postal' minlength='5' maxlength='5' onkeypress='return justNumbers(event)' readonly='readonly' style='width:50px;' value='".$fila['codigo_postal']."'</input>
                        
                        estado<input type='text' name='estado[$i]' id='estado' readonly='readonly' value='"
.$fila['estado']."'</input>
                        municipio<input type='text' name='municipio[$i]' id='municipio' readonly='readonly' value='"
.$fila['municipio']."'</input>
                        ciudad<input type='text' name='ciudad[$i]' id='ciudad' readonly='readonly' value='"
.$fila['ciudad']."'</input></br></br>

área metropolitana<input type='text' name='area_metropolitana[$i]' id='area_metropolitana' readonly='readonly' style='width:30px; margin-left:50px;' value='"
.$fila['area_metropolitana']."'</input>
                        brick atv<input type='text' name='brick_atv[$i]' id='brick_atv' readonly='readonly' value='"
.$fila['brick_atv']."'</input>
                        brick ims<input type='text' name='brick_ims[$i]' id='brick_ims' readonly='readonly' value='"
.$fila['brick_ims']."'</input>
                        zona postal<input type='text' name='zona_postal[$i]' id='zona_postal' readonly='readonly' style='width:30px;' value='"
.$fila['zona_postal']."'</input>
                        colonia<select name='colonia[$i]' id='colonia'>
                        <option value='"
.$fila['colonia']."'>".$fila['colonia']."</option>
                        </select>
                        </div> 
Esto lo tengo como arreglo y funciona muy bien en el php, pero al tratar de introducir un código postal en el input que desencadena el evento pues ... solo lo hace en el domicilio 1 y el resto los ignora.

Si alguien me puede ayudar porque se casi nada de ajax y no puedo solucionarlo.

Gracias por su ayuda.
__________________
paco alonso