PHP - tengo 4 select y al selecionar todos no me carga la tabla

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

tengo 4 select y al selecionar todos no me carga la tabla

Publicado por Rey (74 intervenciones) el 20/01/2020 01:44:03
index.php

1
2
3
4
5
<?php  require_once 'php/conexion.php';  ?>
<?php  require_once 'php/combos.php';  ?>
 
 
<?php require_once 'template.php'; ?>


template.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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<!DOCTYPE html>
<html>
<head>
	<title>JSON</title>
	<link rel="stylesheet" href="css/bootstrap.min.css">
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
 
</head>
<body>
 
<form  method="post" id="formulario">
<div class="row" style="padding: 20px 0px 0px 0px;margin:0px;">
 
	<div class="col-lg-3">
 
		<label for="sede">Sede</label>
		<select name="sede" id="combo" class="form-control">
			<option value="0">Elige una opcion</option>
		<?php foreach ($m->select("sede") as $data): ?>
 
			<option value="<?= $data['id'] ?>"><?=$data['nombre']   ?></option>
 
		<?php endforeach ?>
		</select>
	</div>
 
	<div class="col-lg-3">
 
		<label for="area">Area</label>
		<select name="area" id="combo" class="form-control">
			<option value="0">Elige una opcion</option>
		<?php foreach ($m->select("area") as $data): ?>
 
			<option value="<?= $data['id'] ?>"><?=$data['nombre']   ?></option>
 
		<?php endforeach ?>
		</select>
	</div>
 
 
	<div class="col-lg-3">
 
		<label for="estado">Estado</label>
		<select name="estado" id="combo" class="form-control">
			<option value="0">Elige una opcion</option>
		<?php foreach ($m->select("estado") as $data): ?>
 
			<option value="<?= $data['id'] ?>"><?=$data['nombre']   ?></option>
 
		<?php endforeach ?>
		</select>
	</div>
 
 
	<div class="col-lg-3">
 
		<label for="prioridad_ticket">Prioridad</label>
		<select name="prioridad" id="combo" class="form-control">
			<option value="0">Elige una opcion</option>
		<?php foreach ($m->select("prioridad_ticket") as $data): ?>
 
			<option value="<?= $data['id'] ?>"><?=$data['nombre']   ?></option>
 
		<?php endforeach ?>
		</select>
	</div>
 
 
 
 
 
</div>
</form>
<br>
<div class="row" style="margin: 0px;">
 
	<div class="col-lg-12">
		<div id="resultados"></div>
	</div>
 
 
 
 
</div>
 
 
 
 
 
 
<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/app.js"></script>
</body>
</html>


obtener.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
50
51
52
53
54
55
56
57
58
59
60
<?php
 
 
require_once 'conexion.php';
class obtener
{
 
 
	 function listar($array){
 
	$conexion=new Conexion();
	$con=$conexion->conectar();
	$sql="SELECT r.fecha,r.titulo,r.descripcion,s.nombre sede ,a.nombre area ,e.nombre estado ,pt.nombre prioridad FROM registro r INNER JOIN sede s on r.idsede=s.id INNER JOIN estado e ON r.idestado=e.id INNER JOIN prioridad_ticket pt ON r.idprioridad=pt.id INNER JOIN area a ON r.idarea=a.id WHERE idsede=:sede AND idarea=:area AND idestado=:estado AND idprioridad=:prioridad";
	$statement=$con->prepare($sql);
 
 
	$statement->bindParam(":sede",$array['sede']);
	$statement->bindParam(":area",$array['area']);
	$statement->bindParam(":estado",$array['estado']);
	$statement->bindParam(":prioridad",$array['prioridad']);
 
	$statement->execute();
 
	$data= $statement->fetchAll(PDO::FETCH_ASSOC);
 
 
 
if ($data != NULL) {
 
	echo "<table class='table table-bordered table-hover'><tr><td>Fecha</td><td>Titulo</td><td>Descripcion</td><td>Sede</td><td>Area</td><td>Estado</td><td>Prioridad</td></tr>";
	foreach ($data as $value) {
 
 
		echo "<tr><td>".$value['fecha']."</td><td>".$value['titulo']."</td><td>".$value['descripcion']."</td><td>".$value['sede']."</td><td>".$value['area']."</td><td>".$value['estado']."</td><td>".$value['prioridad']."</td></tr>";
	}
 
 
	echo "</table>";
 
 
 
}else{
 
	echo "<p style='color:red;text-align:center;background-color:#FDF9F9;padding:5px;font-size:1.2em;font-family:Arial;'>No se encontraron Resultados</p>";
	}
}
 
}
 
	$t=new obtener();
if (isset($_POST['area'])) {
 
 
$data = array('sede' => $_POST['sede'],'area' => $_POST['area'], 'estado' => $_POST['estado'] ,'prioridad' => $_POST['prioridad']);
 
 
$t->listar($data);
}
 
?>


app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$(document).ready(function(){
 
 
 
	$(document).on("change","#combo",function(){
 
        $.ajax({
 
			method:"POST",
			url:'http://localhost/combos/php/obtener.php',
			data:$("#formulario").serialize(),
			success:function(respuesta){
 
			$("#resultados").html(respuesta);
 
			}
		});
 
	});


combos.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
<?php
 
 
class combos
{
 
	function select($tabla){
 
	$conexion=new Conexion();
	$con=$conexion->conectar();
	$sql="SELECT * FROM $tabla";
	$statement=$con->prepare($sql);
	$statement->execute();
 
	return $statement->fetchAll(PDO::FETCH_ASSOC);
}
 
 
}
 
 
$m=new combos();
 
?>


conexion.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
<?php
 
class Conexion
{
 
	function conectar()
	{
 
			try {
				$con=new PDO("mysql:host=localhost;dbname=sistema","root","");
 
					return $con;
 
			} catch (PDOException $e) {
 
 
				echo "Error" . $e->getMessage();
 
			}
 
 
	}
}
 
?>


bd
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
-- phpMyAdmin SQL Dump
-- version 4.8.5
-- https://www.phpmyadmin.net/
--
-- Servidor: 127.0.0.1
-- Tiempo de generación: 20-01-2020 a las 01:38:49
-- Versión del servidor: 10.1.38-MariaDB
-- Versión de PHP: 7.3.3
 
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
 
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
 
--
-- Base de datos: `sistema`
--
 
-- --------------------------------------------------------
 
--
-- Estructura de tabla para la tabla `registro`
--
 
CREATE TABLE `registro` (
  `id` int(11) NOT NULL,
  `fecha` datetime DEFAULT NULL,
  `titulo` varchar(30) DEFAULT NULL,
  `descripcion` varchar(100) DEFAULT NULL,
  `idusuario` int(11) DEFAULT NULL,
  `idsede` int(11) DEFAULT NULL,
  `idarea` int(11) DEFAULT NULL,
  `idestado` int(11) DEFAULT NULL,
  `idprioridad` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
--
-- Volcado de datos para la tabla `registro`
--
 
INSERT INTO `registro` (`id`, `fecha`, `titulo`, `descripcion`, `idusuario`, `idsede`, `idarea`, `idestado`, `idprioridad`) VALUES
(91, '2018-07-16 21:43:11', 'No funciona el mouse', 'No se mueve desde ayer', 1, 12, 1, 1, 1),
(96, '2018-07-16 22:49:48', 'No hay Internet', 'URGENTE', 1, 12, 1, 1, 1),
(97, '2018-07-20 10:07:00', 'Problemas de Impresora', 'Se traba el papel', 1, 14, 2, 1, 1),
(98, '2018-07-20 10:07:00', 'Problemas con el sistema', 'Se cuelga', 1, 14, 2, 1, 1),
(99, '2018-07-16 10:56:00', 'Konica sin cartuchos', 'Falta colocarlos', 1, 14, 2, 1, 1),
(100, '2018-07-21 20:16:47', 'Cambio de teclado', 'No funciona', 1, 15, 2, 1, 2),
(101, '2018-07-21 20:17:20', 'Monitor No prende', 'URGENTE', 1, 15, 2, 1, 2);
 
--
-- Índices para tablas volcadas
--
 
--
-- Indices de la tabla `registro`
--
ALTER TABLE `registro`
  ADD PRIMARY KEY (`id`),
  ADD KEY `area` (`idarea`) USING BTREE,
  ADD KEY `usuario` (`idusuario`) USING BTREE,
  ADD KEY `sede` (`idsede`) USING BTREE,
  ADD KEY `estado` (`idestado`) USING BTREE,
  ADD KEY `prioridad` (`idprioridad`) USING BTREE;
 
--
-- AUTO_INCREMENT de las tablas volcadas
--
 
--
-- AUTO_INCREMENT de la tabla `registro`
--
ALTER TABLE `registro`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=102;
 
--
-- Restricciones para tablas volcadas
--
 
--
-- Filtros para la tabla `registro`
--
ALTER TABLE `registro`
  ADD CONSTRAINT `FK_area` FOREIGN KEY (`idarea`) REFERENCES `area` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_estado` FOREIGN KEY (`idestado`) REFERENCES `estado` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_prioridad` FOREIGN KEY (`idprioridad`) REFERENCES `prioridad_ticket` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_sede` FOREIGN KEY (`idsede`) REFERENCES `sede` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_usuario` FOREIGN KEY (`idusuario`) REFERENCES `usuario` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
COMMIT;

erroe
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 José Manuel
Val: 150
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

tengo 4 select y al selecionar todos no me carga la tabla

Publicado por José Manuel (62 intervenciones) el 27/01/2020 19:33:59
Hola:

Reconozco que no me queda claro el problema. Sin embargo, por la captura de imagen que indicas, veo que hay una serie de problemas de script que te pueden perjudicar:

- El más importante es que hay un error 404 (no se encuentra el recurso) sobre el fichero obtener.php. Luego nunca se ejecutará. Indica bien la URL del fichero obtener.php.

- Tienes problemas con las peticiones AJAX: incumplen la política CORS. Ajusta si es posible tus llamadas AJAX.

A ver que tal. Un saludo,
https://obelearningservices.com/blog/
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
sin imagen de perfil
Val: 135
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

tengo 4 select y al selecionar todos no me carga la tabla

Publicado por Rey (74 intervenciones) el 28/01/2020 02:23:38
basicamente es seleccionar los 4 select y al final te va mostrar un resultado ese es el que no muestra
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
sin imagen de perfil
Val: 135
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

tengo 4 select y al selecionar todos no me carga la tabla

Publicado por Rey (74 intervenciones) el 28/01/2020 03:11:03
como puedo pasar esta codigo a JSONP para evitar el Cross-domain

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$(document).ready(function(){
 
    $(document).on("change","#combo",function(){
 
    $.ajax({
 
        method:"POST",
        url:'obtener.php',
        data:$("#formulario").serialize(),
        success:function(respuesta){
 
            $("#resultados").html(respuesta);
 
        }
    });
 
});
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 José Manuel
Val: 150
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

tengo 4 select y al selecionar todos no me carga la tabla

Publicado por José Manuel (62 intervenciones) el 30/01/2020 10:14:57
Hola Rey:

No te recomiendo el uso de JSONP para evitar este problema. La razón: no es realmente una solución si no un "hack" que además es muy vulnerable. Añade que tendrías que hacer más cambios que con lo siguiente. Modifica tu fichero obtener.php para que las primeras líneas del script PHP sean:

1
2
3
4
5
6
7
8
9
10
11
12
13
// Descomenta una de estas líneas para que el PHP permita la petición desde la otra dirección:
// header('Access-Control-Allow-Origin: http://localhost');
// header('Access-Control-Allow-Origin: http://127.0.0.1');
 
// Comenta esta línea si descomentas alguna de las anteriores.
// Esta línea permite acceder a este PHP desde cualquier dirección.
header('Access-Control-Allow-Origin: *');
 
// Permites la petición por el método POST.
header('Access-Control-Allow-Methods: POST');
 
// Resumiendo mucho, permites cachear durante X segundos (en este caso 1000) la petición.
header('Access-Control-Max-Age: 1000');

Si quieres saber más sobre este problema te recomiendo esta lectura:
https://developer.mozilla.org/es/docs/Web/HTTP/Access_control_CORS

Eso es respecto al problema de CORS. Cuando compruebes si funciona y si aún tienes más problemas pues lo indicas si quieres.

Respecto a más problemas que puedas tener, no he podido hacer muchas más pruebas teniendo en cuenta que faltan cosas en el código que indicas (por ejemplo, la estructura de las demás tablas y sus correspondientes registros).

Un saludo,
https://obelearningservices.com/blog/
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
sin imagen de perfil
Val: 135
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

tengo 4 select y al selecionar todos no me carga la tabla

Publicado por Rey (74 intervenciones) el 30/01/2020 12:41:25
Donde descomento la 3 primeras lineas
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 José Manuel
Val: 150
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

tengo 4 select y al selecionar todos no me carga la tabla

Publicado por José Manuel (62 intervenciones) el 30/01/2020 14:49:04
Hola Rey:

El código que te indiqué en el mensaje anterior, tienes que ponerlo en obtener.php, al principio. Si te funciona tal cual está, no tienes que tocar nada.

Un saludo,
https://obelearningservices.com/blog/
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
sin imagen de perfil
Val: 135
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

tengo 4 select y al selecionar todos no me carga la tabla

Publicado por Rey (74 intervenciones) el 02/02/2020 05:35:42
coloque el obtener.php asi
y aun no sigue el error

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
// Descomenta una de estas líneas para que el PHP permita la petición desde la otra dirección:
 //header('Access-Control-Allow-Origin: http://localhost');
// header('Access-Control-Allow-Origin: http://127.0.0.1');
 
// Comenta esta línea si descomentas alguna de las anteriores.
// Esta línea permite acceder a este PHP desde cualquier dirección.
header('Access-Control-Allow-Origin: *');
 
// Permites la petición por el método POST.
header('Access-Control-Allow-Methods: POST');
 
// Resumiendo mucho, permites cachear durante X segundos (en este caso 1000) la petición.
header('Access-Control-Max-Age: 1000');
 
 
require_once 'conexion.php';
class obtener
{
 
 
	 function listar($array){
 
	$conexion=new Conexion();
	$con=$conexion->conectar();
	$sql="SELECT r.fecha,r.titulo,r.descripcion,s.nombre sede ,a.nombre area ,e.nombre estado ,pt.nombre prioridad FROM registro r INNER JOIN sede s on r.idsede=s.id INNER JOIN estado e ON r.idestado=e.id INNER JOIN prioridad_ticket pt ON r.idprioridad=pt.id INNER JOIN area a ON r.idarea=a.id WHERE idsede=:sede AND idarea=:area AND idestado=:estado AND idprioridad=:prioridad";
	$statement=$con->prepare($sql);
 
 
	$statement->bindParam(":sede",$array['sede']);
	$statement->bindParam(":area",$array['area']);
	$statement->bindParam(":estado",$array['estado']);
	$statement->bindParam(":prioridad",$array['prioridad']);
 
	$statement->execute();
 
	$data= $statement->fetchAll(PDO::FETCH_ASSOC);
 
 
 
if ($data != NULL) {
 
	echo "<table class='table table-bordered table-hover'><tr><td>Fecha</td><td>Titulo</td><td>Descripcion</td><td>Sede</td><td>Area</td><td>Estado</td><td>Prioridad</td></tr>";
	foreach ($data as $value) {
 
 
		echo "<tr><td>".$value['fecha']."</td><td>".$value['titulo']."</td><td>".$value['descripcion']."</td><td>".$value['sede']."</td><td>".$value['area']."</td><td>".$value['estado']."</td><td>".$value['prioridad']."</td></tr>";
	}
 
 
	echo "</table>";
 
 
 
}else{
 
	echo "<p style='color:red;text-align:center;background-color:#FDF9F9;padding:5px;font-size:1.2em;font-family:Arial;'>No se encontraron Resultados</p>";
	}
}
 
}
 
	$t=new obtener();
if (isset($_POST['area'])) {
 
 
$data = array('sede' => $_POST['sede'],'area' => $_POST['area'], 'estado' => $_POST['estado'] ,'prioridad' => $_POST['prioridad']);
 
 
$t->listar($data);
}
 
 
 
 
?>

y el app.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$(document).ready(function(){
 
 
    $(document).on("change","#combo",function(){
 
    $.ajax({
 
            method:"POST",
            url:'/combos/php/obtener.php',
            data:$("#formulario").serialize(),
            success:function(respuesta){
 
            $("#resultados").html(respuesta);
 
            }
        });
 
    });
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