Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Eliminar boton de formulario y pasar datos en enlace.

Estas en el tema de Eliminar boton de formulario y pasar datos en enlace. en el foro de Javascript en Foros del Web. Buenas tengo el siguiente código HTML (con PHP): Código HTML: <script src= "./js/iconify.min.js" > </script> <form action= "new.php" method= "post" > <input type= "hidden" name= ...
  #1 (permalink)  
Antiguo 26/06/2019, 04:14
Avatar de senseeye3led  
Fecha de Ingreso: abril-2016
Ubicación: 127.0.0.1
Mensajes: 140
Antigüedad: 3 años, 7 meses
Puntos: 8
Pregunta Eliminar boton de formulario y pasar datos en enlace.

Buenas tengo el siguiente código HTML (con PHP):

Código HTML:
<script src="./js/iconify.min.js"></script>
			<form action="new.php" method="post">
			<input type="hidden" name="vn" value="<?php echo $eliminadosEnvia;?>">
			<input type="submit" name="enviar"> 
			</form>
			<a href="new.php">NEW</a>: <?php echo(count($nuevos));?><span class="iconify" data-icon="flat-color-icons:ok" data-inline="false"></span> 
Su funcionamiento es que al pulsar sobre el botón del formulario, se transfiere la información de un vector $eliminadosEnvia y se muestra su contenido realizando unas operaciones concretas que están en new.php.

Mi objetivo es, hacer desaparecer el botón y que ocurra lo mismo al hacer click en el enlace que contiene "NEW". (Descartado pasar la información por en una variable cómo $_get ya que da problemas por la cantidad de información que es).

¿Debo utilizar JS para realizar lo que quiero? ¿Cómo se podría hacer lo que busco?
  #2 (permalink)  
Antiguo 26/06/2019, 15:46
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.553
Antigüedad: 11 años, 8 meses
Puntos: 1085
Respuesta: Eliminar boton de formulario y pasar datos en enlace.

utiliza AJAX y el método post para enviar la información

Incluso fuera de que la información sea muy extensa y no puedas usar GET, igualmente no deberías enviar datos por ese medio, al menos no cuando es información que afecta a tu base de datos., datos privados y/o que no deba conocer tu usuario.

Cita:
¿Debo utilizar JS para realizar lo que quiero? ¿Cómo se podría hacer lo que busco?
No necesariamente, pudieras enviar al usuario a otra pagina que realice las operaciones que necesitas y cuando termines re-dirigirlo a otra pagina con un mensaje de confirmación., el usar javascript es unicamente para utilizar ajax y no sacar al usuario de la pagina actual.
  #3 (permalink)  
Antiguo 26/06/2019, 19:18
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.594
Antigüedad: 17 años, 7 meses
Puntos: 1277
Respuesta: Eliminar boton de formulario y pasar datos en enlace.

Hola:

Al igual que el botón submit, existe el método del mismo nombre... Puedes poner algún identificador o referenciar el formulario por el orden que lleve en la colección document.forms[] (si solo hay uno llevará el índice cero).
Eso sí, te recomiendo que uses el botón, y si no lo quieres visible, enciérralo entre etiquetas noscript.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 27/06/2019, 09:28
Avatar de senseeye3led  
Fecha de Ingreso: abril-2016
Ubicación: 127.0.0.1
Mensajes: 140
Antigüedad: 3 años, 7 meses
Puntos: 8
Respuesta: Eliminar boton de formulario y pasar datos en enlace.

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Al igual que el botón submit, existe el método del mismo nombre... Puedes poner algún identificador o referenciar el formulario por el orden que lleve en la colección document.forms[] (si solo hay uno llevará el índice cero).
Eso sí, te recomiendo que uses el botón, y si no lo quieres visible, enciérralo entre etiquetas noscript.

Saludos
He intentado hacer una función JS:
Código HTML:
 <!-- --->
			<script>function formSubmit(vn){
					document.forms[0].vn.value = vn;
					document.forms[0].submit();
					}</script>
			<!-- ---> 
En el código HTML/PHP:
Código HTML:
<!-- formulario -->
			<form action="new.php" method="post" id="nuevos">
			<input type="hidden" id="id-vn" name="vn" value="<?php echo $eliminadosEnvia;?>">
			<?php
			echo "<a href=\"javascript:formSubmit($eliminadosEnvia);\">prueba</a>\n";
			?>
			<!-- <input type="submit" name="enviar"> -->
			</form>
<!-- formulario --> 
Pero al pulsar sobre "prueba" no tengo claro que realmente realice lo que deseo.

Mi objetivo es que el enlace "prueba" funcione de la misma manera que funcionaría el botón de enviar. Es decir que al hacer click en el enlace fuera similar a hacer click en el botón.

Creo que algo se me está escapando ...
  #5 (permalink)  
Antiguo 27/06/2019, 19:35
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.594
Antigüedad: 17 años, 7 meses
Puntos: 1277
Respuesta: Eliminar boton de formulario y pasar datos en enlace.

Hola:

En pruebas, yo suelo ver los parámetros envíados a un php, leyendo la variable $_POST, y si es get leyendo la url...

En tu ejemplo asignas con php a un control hidden un valor (entre comillas), y en la función javascript haces una asignación sin entrecomillar (innecesario)... revisa esos detalles... y no dudes en revisar el código fuente del navegador, y usar su consola.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 28/06/2019, 01:21
Avatar de senseeye3led  
Fecha de Ingreso: abril-2016
Ubicación: 127.0.0.1
Mensajes: 140
Antigüedad: 3 años, 7 meses
Puntos: 8
Respuesta: Eliminar boton de formulario y pasar datos en enlace.

Al final ha sido solucionado de la siguiente manera:

Código HTML:
<form action="new.php" method="post" id="nuevos" style="display: none">
			<input type="hidden" id="id-vn" name="vn" value="<?php echo $nuevosEnvia;?>">
			</form> 
Código HTML:
<a href="" onclick="$('#nuevos').submit(); return false;" title="Articulos nuevos">NUEVOS</a> 
Gracias a todos.



La zona horaria es GMT -6. Ahora son las 16:48.