PHP - Enviar variables a través de "<button>"

 
Vista:

Enviar variables a través de "<button>"

Publicado por Lacayo (3 intervenciones) el 23/03/2020 10:26:17
Hola,

tengo problemas para crear un botón independiente que transporte las variables a otra hoja de php.

El código que adjunto funciona bien. Las campos nombre, apellidos y DNI los recojo en la hoja actualizar.php desde "$_POST" sin problema si uso un botón dentro del formulario.


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
<form method='post' id='formulario' action="actualizar.php">
	<table>
 
		<tr>
			<td><label >Nombre: </label></td>
			<td><input type='text' name='nombre' id='nombre' /></td>
 
		</tr>
		<tr>
			<td><label >Apelidos:</label></td>
			<td><input type='text' name='apellidos' id='apellidos' /></td>
		</tr>
		<tr>
			<td><label >NIF :</label></td>
			<td><input type='text' name='NIF' id='NIF' /></td>
		</tr>
                <tr>
 
      <td>    <input type="submit" name="actualizar" id="actualizar" value="Actualizar"></td>
                </tr>
 
 
	</table>
 
 
	<br/><br/>
 
</form>

El problema es que quiero usar un botón externo ya que me mantiene el estilo de la hoja


1
<button onClick='btnactualizar()'>actualizar</button>


Entiendo que debo usar una función("btnactualizar()") Tambien he visto que se puede usar "<a href /a>"
pero nada de lo que pruebo recoge el valor que hay escrito en los campos del formulario y nada llega a " actualizar.php"

No encuentro ningún manual/ vídeo que expliquen claramente como hacerlo. He visto algo relacionado con "ajax" pero tampoco veo como avanzar.

Os agradecería que me indicarais cómo seguir

Saludos
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 Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Enviar variables a través de "<button>"

Publicado por Julio (830 intervenciones) el 23/03/2020 10:36:08
Hola.

Básicamente lo que quieres hacer es enviar el formulario vía JavaScript, ¿no? Para ello haz algo así. Primero crea una sencilla función con JavaScript donde envíes el formulario que has indicado que tiene id "formulario":

1
2
3
4
5
<script>
    function submitForm() {
        document.getElementById('formulario').submit();
    }
</script>

Y luego lo envías:

1
<button onClick='submitForm()'>actualizar</button>

Básicamente, si quieres enviar un formulario desde fuera del formulario, con JavaScript debes utilizar la función submit().

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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

Enviar variables a través de "<button>"

Publicado por lacayo (3 intervenciones) el 23/03/2020 10:48:34
Un par de dudas.

Entiendo que al haber puesto en "action" el nombre del formulario auxiliar, ambos formularios estarán conectados.

¿Se pueden recoger las variables con $_POST? leí algo de un $_REQUEST

¿en la función no debería haber algo como document.getElementById "campo_del_formulario_'nombre'"?

Perdona mi ignorancia. Estoy empezando con PHP y soy un mar de dudas.
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 Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Enviar variables a través de "<button>"

Publicado por Julio (830 intervenciones) el 23/03/2020 11:05:31
Eh..., no entiendo lo que dices de lo del formulario auxiliar.

$_REQUEST engloba todas las variables recogidas, tanto las que se pasan como GET como las que se pasan como POST, así que no te preocupes, para las variables que pasas por POST en un formulario, utiliza $_POST que sólo contendrá a esas variables (aunque si utilizas $_REQUEST tampoco pasa nada).

Tampoco entiendo tu última pregunta. El código JavaScript lo único que hace es "coge el formulario con ID 'formulario' y envíalo", nada más. Es como si pulsaras el botón submit del formulario, no hay más.

¿Has probado a integrarlo y ver si te funciona?

Si estás empezando puedes pasarte por mi blog y también suscribirte aquí. Precisamente durante esta semana y la que viene empiezo a publicar sobre el tema de formularios como puedes ver en el índice de contenidos. En el artículo del próximo lunes hablo de $_REQUEST, $_POST y todo eso, y luego algo sobre validaciones, seguridad... Lo dicho, si te suscribes activando el newsletter te llegará semanalmente el nuevo contenido.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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

Enviar variables a través de "<button>"

Publicado por lacayo (3 intervenciones) el 23/03/2020 11:55:32
Tu código funciona perfectamente. Es lo que estaba buscando.

Muchas Gracias

Con lo que ya tenía montado no ha hecho falta tocar nada. Ha funcionado a la primera.

Lo del formulario auxiliar.... jajaja..... quería decir página de php auxiliar. Los datos que recojo en el "formulario" los muevo a actualizar.php donde hago abro las operaciones con la base de datos.

Mi última pregunta iba en relación a cómo trabaja "document.getElementById". Llevo mucho lío en la cabeza ahora mismo.



De nuevo, muchas gracias.
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 Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Enviar variables a través de "<button>"

Publicado por Julio (830 intervenciones) el 23/03/2020 12:11:22
El archivo PHP adonde envías los datos del formulario es lo de menos (interpreto que es a lo que llamas "auxiliar", porque no lo había escuchado nunca así). Tú buscabas enviar los datos y, para ello, sólo necesitabas lanzar el formulario. Si no lo lanzas con su input submit normal, entonces desde JavaScript existe esa función submit() que lo envía simplemente. Le es indiferente cuál es el archivo que recoge los datos.

Lo de document.getElementById ya no es PHP, es JavaScript. Simplemente puedes pensar que, de todo el documento, obtiene un elemento por su ID. Como el ID que has puesto a ese formulario es "formulario", por eso le he puesto document.getElementById("formulario"). Digamos que ahora, ahí, "tienes el formulario". Como tienes ese formulario apuntado, simplemente le dices submit() y lo envía.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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