AJAX - Pasar valor de select a PHP con javascript

 
Vista:
Imágen de perfil de Reinaldo

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

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: 90
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

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

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: 90
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

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

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

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: 72
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 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

asco de javascript

Publicado por german (1 intervención) el 23/01/2021 01:38:39
voy mas de dos meses y no puedo resolver esta porqueria que al parecer es de lo mas elemental


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
let n1 = document.getElementById('Editbox8').value;
let n2=document.getElementsByName('Editbox9').value;
let n3 = document.getElementById('Editbox10').value;
let n4 = document.getElementById('Editbox11').value;
let n5 = document.getElementById('Editbox12').value;
let n6 = document.getElementById('Editbox13').value;
let n7 = document.getElementById('Editbox14'.value);
let n8 = document.getElementById('Editbox_15').value;
 
 
window.location.assign('grabarnapnueva.php?nv8=' + n1.toUpperCase()
+ '&nv9=' + n2.toUpperCase()
+ '&nv10=' + n3.toUpperCase()
+ '&nv11=' + n4.toUpperCase()
+ '&nv12=' + n5.toUpperCase()
+ '&nv13=' + n6.toUpperCase()
+ '&nv14=' + n7.toUpperCase()
+ '&nv15=' + n8.toUpperCase() + '');
return n2;



y le envio a 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
<?php
$vc16=$_GET['nv8'];
if ($vc16!="" ) {
 
     include ("conexion.php");
	//   $sql="ALTER TABLE zonas ROW_FORMAT = COMPRESSED" ;
 
	   $c1=$_GET['nv8'];
	   $c2=$_GET['n2'];
	   $c3=$_GET['nv10'];
	   $c4=$_GET['nv11'];
	   $c5=$_GET['nv12'];
	   $c6=$_GET['nv13'];
	   $c7=$_GET['nv14'];
	   $c8=$_GET['nv15'];
	   $sql="UPDATE zonas
            SET LUGARES='".$c2."',
			COLORHILO='".$c3."',
			DIRECCIONN='".$c4."',
			NAPN='".$c5."',
			POTENCIA='".$c6."',
			NSPLITER='".$c7."',
			UBICACIONN='".$c8."' WHERE id='".$vc16."' ";
		  $result = mysql_query($sql,$conexion)
			  or die(mysql_error());
 
 
} else {
 
}


y me da un error maldito como este

1
2
3
4
( ! ) Notice: Undefined index: n2 in C:\wamp\www\webintergerom\publicar\grabarnapnueva.php on line 9
Call Stack
#	Time	Memory	Function	Location
1	0.0022	374160	{main}( )	..\grabarnapnueva.php:0


alguien me puede ayudar con esta basura llamado 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 joel
Val: 87
Oro
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

asco de javascript

Publicado por joel (30 intervenciones) el 23/01/2021 09:20:49
Hola German el problema no es de JavaScript... el php no recibe por ger la variable n2, y si te fijas, en el javascript no se la envías en la llamada a PHP.

El "return n2;" de javascript no tiene ningún sentido... y si esa linea esta dentro de una función de js, nunca llegara a PHP, ya que js se ejecuta en el navegador y no en el servidor.

Yo creo que el problema no es de javascript, si no mas bien de conocimiento.

La solución pasa por enviar el valor de la variable n2 al PHP como hacer con las otras variables.
1
2
3
4
5
6
7
8
window.location.assign('grabarnapnueva.php?nv8=' + n1.toUpperCase()
+ '&nv9=' + n2.toUpperCase()
+ '&nv10=' + n3.toUpperCase()
+ '&nv11=' + n4.toUpperCase()
+ '&nv12=' + n5.toUpperCase()
+ '&nv13=' + n6.toUpperCase()
+ '&nv14=' + n7.toUpperCase()
+ '&nv15=' + n8.toUpperCase() + '&n2='+n2);
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