pagina - formulario javascript ejemplo
Post de Javascript en el formulario Enviar abrir una nueva ventana (5)
https://stackoverflow.com/questions/133925/javascript-post-request-like-a-form-submit muestra cómo enviar un formulario que crea a través de JavaScript a través de una publicación. A continuación está mi código modificado.
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", "test.jsp");
var hiddenField = document.createElement("input");
hiddenField.setAttribute("name", "id");
hiddenField.setAttribute("value", "bob");
form.appendChild(hiddenField);
document.body.appendChild(form); // Not entirely sure if this is necessary
form.submit();
Lo que me gustaría hacer es abrir los resultados en una nueva ventana. Actualmente estoy usando algo como esto para abrir una página en una nueva ventana:
onclick=window.open(test.html,'''',''scrollbars=no,menubar=no,height=600,width=800,resizable=yes,toolbar=no,status=no'');
Añadir
<form target="_blank" ...></form>
o
form.setAttribute("target", "_blank");
a la definición de tu formulario.
Conozco este método básico:
1)
<input type=”image” src=”submit.png”> (in any place)
2)
<form name=”print”>
<input type=”hidden” name=”a” value=”<?= $a ?>”>
<input type=”hidden” name=”b” value=”<?= $b ?>”>
<input type=”hidden” name=”c” value=”<?= $c ?>”>
</form>
3)
<script>
$(‘#submit’).click(function(){
open(”,”results”);
with(document.print)
{
method = “POST”;
action = “results.php”;
target = “results”;
submit();
}
});
</script>
¡Trabajos!
La solución de trabajo más simple para el flujo de ventana (probado en Chrome):
<form action=''...'' method=post target="result" onsubmit="window.open('''',''result'',''width=800,height=400'');">
<input name="..">
....
</form>
Si desea crear y enviar su formulario desde Javascript como en su pregunta y desea crear una ventana emergente con características personalizadas, propongo esta solución (puse comentarios sobre las líneas que agregué):
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", "test.jsp");
// setting form target to a window named ''formresult''
form.setAttribute("target", "formresult");
var hiddenField = document.createElement("input");
hiddenField.setAttribute("name", "id");
hiddenField.setAttribute("value", "bob");
form.appendChild(hiddenField);
document.body.appendChild(form);
// creating the ''formresult'' window with custom features prior to submitting the form
window.open(''test.html'', ''formresult'', ''scrollbars=no,menubar=no,height=600,width=800,resizable=yes,toolbar=no,status=no'');
form.submit();
var urlAction = ''whatever.php'';
var data = {param1:''value1''};
var $form = $(''<form target="_blank" method="POST" action="'' + urlAction + ''">'');
$.each(data, function(k,v){
$form.append(''<input type="hidden" name="'' + k + ''" value="'' + v + ''">'');
});
$form.submit();