Al usar window.location.href, me gustaría pasar los datos POST a la nueva página que abro. ¿Es esto posible usando JavaScript y jQuery?datos de entrada de pase con window.location.href
Respuesta
Al utilizar window.location.href
no es posible enviar una solicitud POST.
Lo que tienes que hacer es configurar una etiqueta form
con campos de datos en el mismo, establece el atributo action
de la forma de la URL y el atributo method
a POST, a continuación, llamar al método submit
en la etiqueta form
.
Tengo datos provenientes de 3 formularios diferentes y estoy tratando de enviar los 3 formularios a la misma página, así que he estado tratando de serializar los formularios con jQuery y enviarlos de otra manera – Brian
@Brian: ¿No puede poner simplemente todo en una 'forma', ¿entonces todo se envía automáticamente? –
Un formulario está en un cuadro de diálogo jQueryUI, así que no puedo simplemente incluirlos a todos. – Brian
Agregar un formulario a su HTML, algo como esto:
<form style="display: hidden" action="/the/url" method="POST" id="form">
<input type="hidden" id="var1" name="var1" value=""/>
<input type="hidden" id="var2" name="var2" value=""/>
</form>
y utilizar jQuery para llenar estos valores (por supuesto también se puede usar javascript para hacer algo similar)
$("#var1").val(value1);
$("#var2").val(value2);
Entonces finalmente envíe el formulario
$("#form").submit();
en el lado del servidor que debería poder obtener el dat una enviada al marcar var1
y var2
, la forma de hacerlo dependerá del idioma del lado del servidor que esté utilizando.
Respuesta corta: no. window.location.href
no es capaz de pasar datos POST.
Una respuesta algo más satisfactoria: puede utilizar esta función para clonar todos los datos de su formulario y enviarlo.
var submitMe = document.createElement("form");
submitMe.action = "YOUR_URL_HERE"; // Remember to change me
submitMe.method = "post";
submitMe.enctype = "multipart/form-data";
var nameJoiner = "_";
//^The string used to join form name and input name
// so that you can differentiate between forms when
// processing the data server-side.
submitMe.importFields = function(form){
for(k in form.elements){
if(input = form.elements[k]){
if(input.type!="submit"&&
(input.nodeName=="INPUT"
||input.nodeName=="TEXTAREA"
||input.nodeName=="BUTTON"
||input.nodeName=="SELECT")
){
var output = input.cloneNode(true);
output.name = form.name + nameJoiner + input.name;
this.appendChild(output);
}
}
}
}
- Haz
submitMe.importFields(form_element);
para cada una de las tres formas que desea enviar. - Esta función se añada el nombre de cada forma de los nombres de sus entradas de niño (si usted tiene una
<input name="email">
en<form name="login">
, el nombre presentado serálogin_name
. - Puede cambiar la variable
nameJoiner
a algo distinto de_
por lo que doesn 't conflicto con su esquema de nombres de entrada. - Una vez que haya importado todos los formularios necesarios, hacer
submitMe.submit();
puede utilizar GET en lugar de pase, pero no use este método para valores importantes,
function passIDto(IDval){
window.location.href = "CustomerBasket.php?oridd=" + IDval ;
}
En el CustomerBasket.php
<?php
$value = $_GET["oridd"];
echo $value;
?>
su método GET pero la pregunta es POST method buddy – Thamaraiselvam
@thamaraiselvam Kissa Mia puede no haber expresado bien la respuesta, pero tiene razón sobre la ruta GET aquí. La pregunta no está integrada en el método POST: el usuario solo preguntó si había una forma de tomar * datos POST * y enviarlos a través de window.location.href. Y primero debe saber que Window.location.href ** IS ** es una solicitud GET. Esta respuesta no es incorrecta: simplemente no será fácil escalar a una gran cantidad de campos de formulario, codificados como QueryString. Sin embargo, la forma más obvia de enviar datos a través de una URL (que es lo que puede cambiar con window.location.href) es a través de los parámetros de cadena de consulta. – SylonZero
@SylonZero No puede adjuntar datos POST a una solicitud GET. Son diferentes tipos de solicitudes y los datos se ven diferentes en un POST. Las partes importantes de la especificación HTTP son bastante cortas. –
usan este archivo: "jquery.redirect.js"
$("#btn_id").click(function(){
$.redirect(http://localhost/test/test1.php,
{
user_name: "khan",
city : "Meerut",
country : "country"
});
});
});
es tan simple como esto
$.post("som_page.php", { data1: value1 , data2: value2 .... }).done(function(data) { $("body").html(data);});
Tuve que resolver esto para hacer un bloqueo de pantalla de mi aplicación donde tuve que pasar datos confidenciales como usuario y la url donde estaba trabajando.A continuación, cree una función que ejecute este código
O en la función 'done()' establecida 'window.location.href' –
Sí @ChrisEdwards, en mi ejemplo trato de usar los datos de retorno de jquery post. Espero que sea útil para alguien. –
- 1. window.location.href = window.location.href y JSLint
- 2. Diferencia entre window.location.href = window.location.href y window.location.reload()
- 3. Disparar shouldStartLoadWithRequest con múltiples llamadas a window.location.href
- 4. burlando window.location.href en Javascript
- 5. Evento cuando window.location.href cambia
- 6. window.location.href en firefox
- 7. onbeforeunload cancelación de diálogo con window.location.href IE8 fallo
- 8. Pase la matriz de datos a la función jQuery
- 9. window.onbeforeunload y window.location.href en IE
- 10. echo Javascript window.location.href no funciona
- 11. Diferencia entre window.location.href y top.location.href
- 12. window.open target _self v window.location.href?
- 13. window.location.href no funciona en el formulario onsubmit
- 14. pase de buffer Pre Z con OpenGL?
- 15. android paquete de pase con búsqueda
- 16. Depuración de un pase llvm con gdb
- 17. Pase muchos datos desde una sola etiqueta de ancla
- 18. Datos de archivo del elemento de entrada
- 19. ¿Solo permite la entrada de datos única con Android SQLite?
- 20. necesidad de datos de flujo de entrada
- 21. jQuery $ (document) ready() no disparar después window.location.href
- 22. window.location.href vs clic en un ancla
- 23. Obtener datos de entrada sin formato
- 24. pase enumeración de html.radiobuttonfor MVC3
- 25. pase los parámetros a php con shell
- 26. Pase muchos datos desde Python al programa C
- 27. Pase datos desde una página ASP.NET a controles de usuario ASCX cargados dinámicamente
- 28. pase de Java por referencia
- 29. Three.js con eventos de toque o pase y ejemplo
- 30. de entrada fscanf con flotadores
Configuración 'window.location.href' hace una solicitud GET para la nueva URL, no POST. –