AJAX - Pasar valor de select a PHP con javascript

 
Vista:
Imágen de perfil de Reinaldo
Val: 24
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Pasar valor de select a PHP con javascript

Publicado por Reinaldo (12 intervenciones) el 22/02/2017 21:36:29
Hola tengo el siguiente código y necesito pasar el value del select a php por ajax, sólo tengo la parte que lo captura con Javascript:

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
<script>
function test() {
    d = document.getElementById("lista").value;
    return d;
}
</script>
 
<div>
 
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
       <div>
            Seleccione periodo:
            <select onchange="test()" name="name" id="lista">
                <option value="0" selected>Haga clic aquí</option>
                <option value="1" <?php if($_POST['name']=='1') echo 'selected="selected" ';?>> ENERO</option>
                <option value="2"  <?php if($_POST['name']=='2') echo 'selected="selected" ';?>>FEBRERO</option>
                <option value="3"  <?php if($_POST['name']=='3') echo 'selected="selected" ';?>>MARZO</option>
                <option value="4"  <?php if($_POST['name']=='4') echo 'selected="selected" ';?>>ABRIL</option>
                <option value="5"  <?php if($_POST['name']=='5') echo 'selected="selected" ';?>>MAYO</option>
                <option value="6"  <?php if($_POST['name']=='6') echo 'selected="selected" ';?>>JUNIO</option>
                <option value="7"  <?php if($_POST['name']=='7') echo 'selected="selected" ';?>>JULIO</option>
                <option value="8"  <?php if($_POST['name']=='8') echo 'selected="selected" ';?>>AGOSTO</option>
                <option value="9"  <?php if($_POST['name']=='9') echo 'selected="selected" ';?>>SEPTIEMBRE</option>
                <option value="10"  <?php if($_POST['name']=='10') echo 'selected="selected" ';?>>OCTUBRE</option>
                <option value="11"  <?php if($_POST['name']=='11') echo 'selected="selected" ';?>>NOVIEMBRE</option>
                <option value="12"  <?php if($_POST['name']=='12') echo 'selected="selected" ';?>>DICIEMBRE</option>
            </select>
            <input type="submit" name="submit" value="Consultar">
            <input type="button" onclick=" generateexcel('testTable') " value="Exportar a Excel">
        </div>
     </form>
</div>
 
 
 
<?php
 
if(isset($_POST['d']))
{
$name = $_POST['d'];
}
echo "No encontrado";
?>
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 Reinaldo
Val: 24
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Pasar valor de select a PHP con javascript

Publicado por Reinaldo (12 intervenciones) el 22/02/2017 23:24:23
El código básicamente debe capturar el valor de un select por una función ajax y pasar a una variable PHP. Alguien que de verdad sepa y me pueda ayudar le agradecería.
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 xve
Val: 108
Oro
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Pasar valor de select a PHP con javascript

Publicado por xve (222 intervenciones) el 23/02/2017 08:07:15
Hola Reinaldo, la manera sencilla es utilizar $.post() de jquery... algo así:
1
$.post( "test.php", { variable: d } );

y desde php puedes obtener el valor con:
1
echo $_POST["variable"];

https://api.jquery.com/jQuery.post/

Recuerda instanciar jquery en tu página!!!
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 Reinaldo
Val: 24
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Pasar valor de select a PHP con javascript

Publicado por Reinaldo (12 intervenciones) el 23/02/2017 14:33:54
Gracias por responder. El caso es que debe enviarse el post a la misma página, por eso no aplica colocar una página como "test.php".

Supongo que quedaría así (?):


1
2
3
4
function test() {
    d = document.getElementById("lista").value;
$.post( , { variable: d } );
}
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 Reinaldo
Val: 24
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Pasar valor de select a PHP con javascript

Publicado por Reinaldo (12 intervenciones) el 23/02/2017 16:27:31
Esta forma no funciona en Wordpress:

1
2
3
4
5
6
7
8
9
10
11
function test() {
    d = document.getElementById("lista").value;
$.post( , { variable: d } );
}
 
Ni tampoco esta:
 
function test() {
    d = document.getElementById("lista").value;
jQuery.post( "", { variable: d } );
}

Incluyendo en functions.php

wp_enqueue_script('jquery');
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 xve
Val: 108
Oro
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Pasar valor de select a PHP con javascript

Publicado por xve (222 intervenciones) el 23/02/2017 20:07:06
Hola Rinaldo, estas seguro que se envia a la misma pagina??? tendria que enviarse a una pagina que no devuelve nada de código...

Para poner la url, puedes probar a poner:
1
document.location.pathname

algo así:
1
$.post(document.location.pathname , { variable: d } );
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 Reinaldo
Val: 24
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Pasar valor de select a PHP con javascript

Publicado por Reinaldo (12 intervenciones) el 23/02/2017 20:38:48
Hola, no, eso no funciona.

Ni tampoco con window.location.

Tal parece que algo bloquea el post porque siempre aparece la página 404 aunque no se generarn errores en el log.

Tal vez Wordpress bloquea el jquery aunque he revisado y lo tiene por defecto instalado.
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 Reinaldo
Val: 24
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Pasar valor de select a PHP con javascript

Publicado por Reinaldo (12 intervenciones) el 23/02/2017 21:24:55
Error que muestra en el navegador:


error
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 Reinaldo
Val: 24
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Pasar valor de select a PHP con javascript

Publicado por Reinaldo (12 intervenciones) el 23/02/2017 23:14:33
También estoy probando con: (ESTO ESTÁ EN UN SCRIPT APARTE EN WORDPRESS, QUE LO RECONOCE PERO GENERA ERROR)

1
2
3
4
(function($){
    var d= document.getElementById("lista").value;
    $.post(document.location.pathname , { variable: d } );
}(jQuery))



pero me genera este error: Uncaught TypeError: Cannot read property 'value' of null. Supongo que debo agregar algo como un addEventListener pero no se como.
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 Alejandro
Val: 73
Plata
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Pasar valor de select a PHP con javascript

Publicado por Alejandro (17 intervenciones) el 25/02/2017 00:25:24
Hola Reinaldo, intenta poner un manejador de eventos,

1
2
3
4
5
6
(function($) {
   document.getElementById("lista").addEventListener('change', function(e) {
       $.post(document.location.pathname , { variable: this.value } );
  }, false);
 
}(jQuery))

Prueba con esto y nos comentas. 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