PHP - Problemas con select dependiente no carga

 
Vista:

Problemas con select dependiente no carga

Publicado por SergioMM (26 intervenciones) el 23/03/2021 07:18:58
Hola, gracias antes de nada.

Tengo dos archivos index.php sql.php y el problema es que ajax al hacer click en cualquier valor del primer select
en el inspector de firefox manda el value a la pagina sql.php pero el otro select no carga los resultados.
y por mas que reviso el codigo no veo el fallo.

index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
include 'db/sql.php';
?>
<body>
 
<select id="select_comunidad" name="select_comunidad" class="form-select form-select-mb mb-3" aria-label=".form-select-lg">
    			<option value="0" selected>Selecciona tu comunidad</option>
  				<?php
					foreach($datacomunidad as $rowcomunidad) {
						echo '<option value="'.$rowcomunidad["id_comunidad"].'">'.$rowcomunidad["nombre_comunidad"].'</option>';
					}
			    ?>
			</select>
 
 
<select id="select_provincia" name="select_provincia" class="form-select form-select-mb mb-3" aria-label=".form-select-lg">
  				<option value="0" selected>Selecciona tu Provincia</option>
  				<?php
  					foreach ($dataprovincia as $rowprovincia){
            		echo '<option value="'.$rowprovincia["id_provincia"].'">'.$rowprovincia["nombre_provincia"].'</option>';
            	}
  				?>
			</select>
</body>
 
<footer>
 
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<!-- CARGAR DATOS DE LA DB MEDIANTE AJAX -->
 
<script type="text/javascript">
$(document).ready(function(){
    $('#select_comunidad').on('change',function(){
        var IDcomunidad = $(this).val();
            $.ajax({
                type:'POST',
                url:'db/sql.php',
                data:'id_comunidad='+IDcomunidad,
                success:function(html){
                    $('#select_provincia').html(html);
                }
            });
    });
});
</script>
 
<!-- CARGAR DATOS DE LA DB MEDIANTE AJAX -->
 
</footer>

El archivo sql.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
 
include 'db/conexiondb.php';
 
 
$getcomunidad = $dbConnection->query("Select id_comunidad, nombre_comunidad FROM comunidad");
    	$datacomunidad = $getcomunidad->fetchAll(PDO::FETCH_ASSOC);
 
 
    if(isset($_POST["id_comunidad"]) && !empty($_POST["id_comunidad"])){
 
    	$IDcomunidad = $_POST["id_comunidad"];
 
    	$getprovincia = $dbConnection->query("Select * FROM provincia WHERE id_comunidad = '$IDcomunidad'");
    	$dataprovincia = $getprovincia->fetchAll(PDO::FETCH_ASSOC);
 
}
 
?>



Este es el error que me tira el inspector


Request URL: http://localhost/db/sql.php
Request Method: POST
Status Code: 500 Internal Server Error
Remote Address: [::1]:80
Referrer Policy: strict-origin-when-cross-origin
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problemas con select dependiente no carga

Publicado por joel (1269 intervenciones) el 23/03/2021 10:47:23
El error 500 indica que tienes un error en el código PHP... a simple vista no lo se ver...

Puedes revisar el log de tu servidor web, ahí te indicara el error que esta teniendo, o puedes habilitar los errores en el PHP modificando el archivo php.ini.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problemas con select dependiente no carga

Publicado por SergioMM (26 intervenciones) el 26/03/2021 11:47:07
Hola de nuevo, xampp dedes linux no me arrojaba ningun error incluso modificando el php.ini de la carpeta apache2, he instalado xampp en windos y la cosa cambió.

Ahora tengo este codigo con los errores arreglados pero sigue sin funcionar. he revisado todo ya y no veo el fallo.
La conexion PDO no creo que sea, por que funciona a la hora de cargar el select de las comunidades.

1
2
$getcomunidad = $dbConnection->query("Select id_comunidad, nombre_comunidad FROM comunidad");
    	$datacomunidad = $getcomunidad->fetchAll(PDO::FETCH_ASSOC);


conexiondb.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
session_start();
 
$dbuser="root";
$dbpass="";
$db_name="mysql:host=localhost;dbname=system";
$dbname = "system";
$dblocalhost ="localhost";
 
/* CONEXION A LA BASE DE DATOS */
try {
 
$dbConnection = new PDO($db_name, $dbuser, $dbpass);
$dbConnection->exec("set names utf8");
$dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
/* FIN CONEXION A LA BASE DE DATOS */
?>



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<footer>
 
<?php
echo "<link rel=stylesheet href=css/style.css>";
?>
  	<!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
 
  	<!-- Option 2: Separate Popper and Bootstrap JS -->
 
    <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.6.0/dist/umd/popper.min.js" integrity="sha384-KsvD1yqQ1/1+IA7gi3P0tyJcT3vR+NdBTt13hSJ2lnve8agRGXTTyNaBYmCR/Nwi" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
 
    <!-- CARGAR DATOS DE LA DB MEDIANTE AJAX -->
 
<script type="text/javascript">
$(document).ready(function(){
    $('#select_comunidad').on('change',function(){
        var IDcomunidad = $(this).val();
            $.ajax({
                type:'POST',
                url:'db/sql.php',
                data:'id_comunauto='+IDcomunidad,
                datatype: 'html',
                beforeSend: function () { },
                success:  function (response) {
                    $('#select_provincia').html(response);
 
                },
                error:function(){
                    alert("error")
                }
            });
    });
 
 
});
</script>
 
<!-- CARGAR DATOS DE LA DB MEDIANTE AJAX -->
  </footer>

Archivo sql.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
 
include 'conexiondb.php';
 
    //CARGAR SELECT PROVINCIAS MEDIANTE AJAX
 
    if(isset($_POST["id_comunauto"]) AND $_POST["id_comunauto"]!=""){
 
        $id_comun = $_POST['id_comunauto'];
 
    	$getprovincia = $dbConnection->query("Select * FROM provincia WHERE id_comunidad = '$id_comun'");
    	$dataprovincia = $getprovincia->fetchAll(PDO::FETCH_ASSOC);
 
}
 
 
?>

Archivo index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<select id="select_comunidad" name="select_comunidad" class="form-select form-select-mb mb-3" aria-label=".form-select-lg">
    			<option value="0" selected>Selecciona tu comunidad</option>
  				<?php
					foreach($datacomunidad as $rowcomunidad) {
						echo '<option value="'.$rowcomunidad["id_comunidad"].'">'.$rowcomunidad["nombre_comunidad"].'</option>';
					}
			    ?>
			</select>
 
    		<select id="select_provincia" name="select_provincia" class="form-select form-select-mb mb-3" aria-label=".form-select-lg">
  				<option value="0" selected>Selecciona tu Provincia</option>
  				<?php
  					foreach ($dataprovincia as $rowprovincia){
            		echo '<option value="'.$rowprovincia["id_provincia"].'">'.$rowprovincia["nombre_provincia"].'</option>';
            	}
  				?>
			</select>

Este el informe que me tira el inspector del firefox en la pestaña de red
1
2
3
4
5
6
7
8
9
10
11
12
scheme: http
host: localhost
filename: /db/sql.php
Dirección: 127.0.0.1:80
Estado: 200
OK
VersiónHTTP/1.1
Transferido937 B (tamaño 0 B)
Política de referenciano-referrer-when-downgrade
 
Datos del formulario: id_comunauto	"1"
Contenido de la peticion: id_comunauto=1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problemas con select dependiente no carga

Publicado por joel (1269 intervenciones) el 26/03/2021 14:33:03
Hola Sergio, viendo el código, la verdad no te se decir que puede estar pasando... ya que no lo puedo probar... mira el log del apache, y el inspector de red, que se envié y reciba todo tal y como esperas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Problemas con select dependiente no carga

Publicado por Mauro (1036 intervenciones) el 27/03/2021 15:00:08
Yo te recomendaría utilizar un debugger para ir inspeccionando el contenido de las variables y ejecutar las consultas directo sobre la DB a ver si logras ubicar el problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar