PHP - PHP, Ajax y MySQL : Error notice y no aparece contenido

 
Vista:
sin imagen de perfil

PHP, Ajax y MySQL : Error notice y no aparece contenido

Publicado por Alba (2 intervenciones) el 05/01/2017 01:58:16
Hoa a todos,

En primer lugar, gracias de antemano por vuestra atención.

Es la primera vez que escribo en el foro y a la desesperada, soy bastante novatilla en el mundo del PHP y se me hace a veces cuesta arriba.

Al lio:

El caso es que he creado un programa que hace una especie de filtro (parecido a los portfolios masonry). Tiene cuatro botones y cada uno lleva a una consulta diferente a la base de datos.

Lo he intentado hacer como un ejercicio individual y me sale, me aparece como quiero, pero a la hora de integrarlo en mi página web vienen los problemas. Al parecer cuando meto el código (os lo adjunto) me aparece el siguiente error:

Notice: Undefined index: all in /Applications/XAMPP/xamppfiles/htdocs/albarojas2/php/filtro.php on line 31

Es como si no reconociera el name del botón.. muy raro, en el otro si que lo reconoce.

HTML

1
2
3
4
5
6
7
8
9
<section id="Proyectos">
      <h1>#Proyectos</h1>
    <button class="btn btn-primary" name="all" value="all">All</button>
    <button class="btn btn-primary" name="filtro" value="mkt">Marketing</button>
    <button class="btn btn-primary" name="filtro" value="dis">Diseño</button>
       <button class="btn btn-primary" name="filtro" value="web">Web</button>
  <div id="resultado">
  </div>
   </section>

JS

1
2
3
4
5
6
7
8
9
10
11
$('.btn').click(function(){
         $.ajax({ url: 'index.php/../php/filtro.php',
                        type: 'post',
                        success: function(output) {
                            $('#resultado').html(output);
                        },
                      error: function(request, status, error){
                        alert("Error: Could not delete");
                      }
                });
    })

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
<?php
    //Conexión a bd
    $host = 'localhost';
    $user = 'root';
    $pass = '';
    $db = 'alba';
    $link = mysqli_connect($host, $user, $pass, $db);
     function imprimirDatos($img, $titulo, $cuerpo){
        echo '
                   <div class="col-md-4">
                   <figure>
                        <img class="img-responsive" src="images/'.$img.'"/>
                        <figcaption>
                            <h3>'.$titulo.'</h3>
                            <p>'.$cuerpo.'</p>
                        </figcaption>
                   </figure>
                </div>';
    };
 
$all = $_POST['all'];
$filtro = $_POST['filtro'];
     if($all){
         $query = "SELECT * from portfolio";
            if($result = mysqli_query($link,$query)){
                while($row = mysqli_fetch_array($result))
                    {
                        $img = $row['img'];
                        $titulo = $row['titulo'];
                        $cuerpo = $row['cuerpo'];
                        imprimirDatos($img, $titulo, $cuerpo);
                    };
                };
            }
    else if($filtro){
        $query = "SELECT * from portfolio WHERE tipo LIKE '".$filtro."'";
            if($result = mysqli_query($link,$query)){
                while($row = mysqli_fetch_array($result))
                {
                    $img = $row['img'];
                    $titulo = $row['titulo'];
                    $cuerpo = $row['cuerpo'];
                    imprimirDatos($img, $titulo, $cuerpo);
                };
            };
    };
mysqli_close($link);
?>

MYSQL
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
CREATE TABLE `portfolio` (
  `id` int(11) NOT NULL,
  `titulo` text NOT NULL,
  `cuerpo` longtext NOT NULL,
  `tipo` text NOT NULL,
  `img` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
--
-- Volcado de datos para la tabla `portfolio`
--
 
INSERT INTO `portfolio` (`id`, `titulo`, `cuerpo`, `tipo`, `img`) VALUES
(2, 'Posicionamiento SEO', 'lorem aeiognrebapert efINOWV GRE', 'mkt', 'thumb.jpg'),
(3, 'Logotipo', 'onngreaoigpnbreonb  avrnioebreo gveaniorepb', 'dis', 'thumb.jpg'),
(4, 'Pagina web', 'onngreaoigpnbreonb  avrnioebreo gveaniorepb', 'web', 'thumb.jpg'),
(5, 'mnfoiargnorg', 'fewmgoreibghnreoibmera', 'mkt', 'thumb.jpg');
 
--
-- Índices para tablas volcadas
--
 
--
-- Indices de la tabla `portfolio`
--
ALTER TABLE `portfolio`
  ADD PRIMARY KEY (`id`);
 
--
-- AUTO_INCREMENT de las tablas volcadas
--
 
--
-- AUTO_INCREMENT de la tabla `portfolio`
--
ALTER TABLE `portfolio`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;

Disculpadme si he cometido alguna chapuza :)

Un saludo!!
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 Isai
Val: 93
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

PHP, Ajax y MySQL : Error notice y no aparece contenido

Publicado por Isai (79 intervenciones) el 05/01/2017 03:31:10
Hola Alba he metido mano a tu codigo.

HTML y JS
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
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>  <!-- si ya lo tienes omite esta linea-->
<section id="Proyectos">
 
      <h1>#Proyectos</h1>
 
 
    <button class="btn btn-primary" name="all" onclick="aplFiltro('all')">All</button>
 
    <button class="btn btn-primary" name="filtro" onclick="aplFiltro('mkt')">Marketing</button>
 
    <button class="btn btn-primary" name="filtro" onclick="aplFiltro('dis')">Diseño</button>
 
       <button class="btn btn-primary" name="filtro" onclick="aplFiltro('dis')">Web</button>
 
  <div id="resultado">
 
  </div>
 
   </section>
 
  <script>
  		function aplFiltro(valor){
  			var $resultado = $("#resultado");
  			var peticion =  $.post("borrar1.php",{filtro:valor});
  			peticion.done(function(response){
             	$resultado.empty().append(response);
 
             });
  		}
   </script>

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
//Conexión a bd
 
    $host = 'localhost';
 
    $user = 'root';
 
    $pass = '';
 
    $db = 'alba';
 
    $link = mysqli_connect($host, $user, $pass, $db);
 
     function imprimirDatos($img, $titulo, $cuerpo){
 
        echo '

                   <div class="col-md-4">
                   <figure>
                        <img class="img-responsive" src="images/'.$img.'"/>
                        <figcaption>
                            <h3>'.$titulo.'</h3>
                            <p>'.$cuerpo.'</p>
                        </figcaption>
                   </figure>
                </div>';
    }
 
 
 $filtro = $_POST["filtro"];
 
 switch ($filtro) {
     case 'all':
         # aqui va tu codigo de all...
          $query = "SELECT * from portfolio";
 
            if($result = mysqli_query($link,$query)){
                while($row = mysqli_fetch_array($result))
                {
                    $img = $row['img'];
                    $titulo = $row['titulo'];
                    $cuerpo = $row['cuerpo'];
                    imprimirDatos($img, $titulo, $cuerpo);
                }
            }
         break;
 
     default:
         # aqui va tu codigo de con filtro LIKE...
            $query = "SELECT * from portfolio WHERE tipo LIKE '".$filtro."'";
 
            if($result = mysqli_query($link,$query)){
                while($row = mysqli_fetch_array($result))
                {
                    $img = $row['img'];
                    $titulo = $row['titulo'];
                    $cuerpo = $row['cuerpo'];
                    imprimirDatos($img, $titulo, $cuerpo);
                }
 
            }
         break;
 }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

PHP, Ajax y MySQL : Error notice y no aparece contenido

Publicado por Alba (2 intervenciones) el 05/01/2017 12:34:38
Ay!!! Muchísimas gracias!!! Funciona a las mil maravillas!!

Cuál crees que era el problema con respecto mi código? el onclick? la sentencia if??

Reitero las gracias!! un saludo!!
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 raai
Val: 93
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

PHP, Ajax y MySQL : Error notice y no aparece contenido

Publicado por raai (79 intervenciones) el 05/01/2017 23:51:00
El problema es el eventro clic de tu jquery. No se enviaba el valor del boton presionado.

Por eso me tome el atrevimiento de modificarlo.

Saludos
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