--
PHPGT :: Grupo de PHPeros de Guatemala
email: ph...@googlegroups.com
www: http://php.develsystems.com | http://groups.google.com/group/phpgt/
es q el cliente no es mío sino de la empresa donde trabajo_Yo_ le explicaría al cliente que la mamarrachada que tiene está mal hecha porque contrató a un n00b, o a alguien que le desarrolló el sistema a $9.99 - y que lo barato sale caro y que le costará algo de plata refactorizarlo para que quede bien hecho, haciendo lo mismo... luego, le añadiría la funcionalidad que necesita.
si, pero la respuesta fue muy similar a la q Paco nos dijo una vez: "proponer hacerlo desde cero implica que no somos capaces de arreglarlo, asi que busquen una solución"
mi jefe no lo dijo con esas palabras, pero si me dio a entender q hay q hacerle ganas
Vamos pos pasos, puedes hacerlo de 2 maneras, con window.open o window.showModalDialog, le pasas la url, recoges los datos y a correr.
Ahora yo me decantaba por algo más rollo (jQuery).-
function abreVentana(anchura, altura, url_form, modal, titulo){
$.ajax({
type: "POST",
url: url_form,
success: function(datos){
cargaDatosVentana(datos);
}
});
}
function cargaDatosVentana(datos){
$(function() {
$('#dialogo').dialog({
width:anchura,
title: titulo,
modal: modal
});
$('#dialogo').dialog('option', 'position',['center','top']);
});
$('#dialogo').bind('dialogclose', function(event, ui) {
$('#dialogo').remove();
});
$('#dialogo').html(datos);
}
Abres una ventana modal con la funcion dialog de jQuery, donde le pasas el html del form, a parte, ya de paso le podrías pasar como te añado, anchura, altura, título y si quieres que sea modal.
Tan simple como en el enlace que hace la llamada, en el onclick hagas la llamada al metodo abreVentana con la url del form.
Un vez que has terminado con el form de la ventana modal, en vez de hacerlo por el clásico post de refresco de página, lo haces nuevamente por ajax procesando el formulario en el destino que quieras.-
<input type=”button” onclick=”procesaForm(‘miFormulario’,’miURL’)” />
function procesaForm(form,url_envio){
cadenaEnvio = $('#'+form).serializeArray();
$.ajax({
type: "POST",
url: url_envio,
data: cadenaEnvio,
dataType: 'html',
success: function(devolucion){
//HACES LO QUE QUIERAS CON LA DEVOLUCIÓN
//POR EJEMPLO CERRAR EL DIALOG
$("div[id*='dialogo']:last").remove();
}
});
}
Más pistas no te puedo dar no? ;)
No entiendo porque va a dar problemas js incrustado… al fin y al cabo es una petición post con un retorno que insertas en un elemento html, si pones un ejemplo tal vez te pueda echar una mano
Por cierto, me lleve la sorpresa de encontrar a Attakisky por aqui jeje