PHP - FUNCIONES PHP NO FUNCIONAN

 
Vista:
sin imagen de perfil
Val: 79
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

FUNCIONES PHP NO FUNCIONAN

Publicado por Jonathan (40 intervenciones) el 12/08/2020 22:59:42
Tengo dos funciones en php que actuan en un formulario mediante Ajax. Una de ellas muestra un input tipo select,la otra realiza una busqueda mediante un input y el resultado lo muestra en la consola. Las dos funciones están bien escritas y funcionan correctamente. El problema es que al estar ambas juntas solo funciona una de ellas, si borro una funciona la otra y viceversa.

Adjunto las funciones en php y Ajax

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 $raiz2 = "../";include 'conexion.php';
class Listado_productos {
 
	public function productos(){
		$con = new Conexion();
        $Query = "SELECT descripcion FROM productos";
        $productos = $con->obtenerdatos($Query);
        $filas = $con->numerofilas2($Query);
        $HTML = '<label for="producto">Producto</label>';
        if($filas > 0){
            $HTML .= '<select name="producto" id="producto" class="custom-select form-control-resp">';
            for($i=0,$filas;$i<$filas;$i++){
                $HTML .= '<option value="'.$productos[$i]['descripcion'].'">'.$productos[$i]['descripcion'].'</option>';
            }
            $HTML .= '</select>';
        }else{
            $HTML .='<select name="producto" id="producto" class="custom-select form-control-resp" disabled></select>';
        }
        return $HTML;
    }
 
	public function codigos(){
		$con = new Conexion();
		if(isset($_POST['codigo'])){
			$codigo = $_POST['codigo'];
			$Query = "SELECT descripcion FROM productos WHERE codigosap = '$codigo'";
			$resultados = mysqli_query($con->conexion , $Query);
			$totalresultados = mysqli_num_rows($resultados);
			$HTML = '';
			if($totalresultados > 0) {
				while ($fila = mysqli_fetch_assoc($resultados)) {
					$HTML .= $fila['descripcion'];
				}
			}
		}
		return $HTML;
	}
}
$inputs = new Listado_productos();
if(isset($_POST["action"])){
	$html1 = $inputs->productos();
	$html2 = $inputs->codigos();
	$data = array(
		"html1" => $html1,
		"html2" => $html2
	);
	echo json_encode($data);
}
?>

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
//LISTADO PRODUCTOS//
	function listado_productos(){
        var action = 'fetch_data';
        $.ajax({
            url:"listado_productos.php",
            method: "POST",
            dataType: "json",
            data:{ action:action},
            success:function(data){
				$('.input_producto').html(data.html1);
            }
        });
    }
	//CODIGO PRODUCTOS//
	function codigo_producto(){
        var action = 'fetch_data';
		var codigo = document.getElementById("codigo").value;
        $.ajax({
            url:"listado_productos.php",
            method: "POST",
            dataType: "json",
            data:{ action:action,codigo:codigo},
            success:function(data){
				console.log(data.html2);
            }
        });
    }
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

FUNCIONES PHP NO FUNCIONAN

Publicado por joel (1269 intervenciones) el 13/08/2020 11:05:36
Hola Jonathan, tendrian que funcionarte correctamente dos o 10 funciones AJAX simultaneas sin ningun problema.

Como llamas a las funciones listado_productos() y codigo_producto() con JavaScript?
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 Fabian
Val: 157
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

FUNCIONES PHP NO FUNCIONAN

Publicado por Fabian (60 intervenciones) el 13/08/2020 14:04:09
tene en cuenta que las llamadas Ajax son asincronicas. Si vos por ejemplo ejecutas las dos funciones una despues de otra:
listado_productos();
codigo_producto();

el orden de ejecución no es lineal, es decir cuando ejecutas listado_productos(), al mismo tiempo ejectua codigo_producto(), por lo tanto codigo_producto() no tiene en cuenta lo que hizo listado_productos(), por lo tanto no te va a funcionar correctamente.
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 Fabian
Val: 157
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

FUNCIONES PHP NO FUNCIONAN

Publicado por Fabian (60 intervenciones) el 13/08/2020 15:09:34
Me parece que el problema está en $con = new Conexion();
Tanto en productos() como en codigos() estás conectando a la base de datos. Proba en productos() y codigos() cerrar la base de datos.
Entonces el problema está que no estás cerrando la conexion a la base de datos en cada caso.
Yo cerraría la conexión a la base de datos en productos() y codigos() al final de cada método.
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