Enviar Post

Que tal Amigos del foro, tengo una duda.

Estoy trabajando en una aplicación que envía desde un formulario los datos a través de POST a una página externa. Yii me permite en el formulario indicar la función a la que voy a enviar los datos, pero el problema esta en que necesito darle formato a los datos antes de mandarlos por POST a la página externa. Lo que he tratado de hacer es que el formulario mande a llamar a una función que tengo en uno de mis controladores en Yii, darle formato a los datos y luego mandarla por post desde la misma función a la página externa. Pero no he conseguido como enviar por post los datos desde el controlador y nos desde el form.

Agradecería mucho su ayuda.

Saludos.

Con eso de "página externa" te refieres a una web que está en otro dominio verdad?

Puedes tratar los datos con javascript antes de enviar el formulario.

Añadiendo un script al final de la vista o en un fichero JS separado podrías hacer algo como:




// Funcion que se ejecuta antes de enviar el formulario:

$('#id-de-tu-formulario').submit(function(){

    var $form = $(this);

    

    // ... jquery básico vamos, si necesitas ayuda vuelve a preguntar

});



Con esto podrías modificar valores que se van a enviar, añadir y quitar campos etc…

Ten cuidado, porque si en la función que trata los datos devuelves false, o se produce alguna excepcion el formulario no se enviará. (documentacion de jquery submit)

Pero lo que has hecho, (enviar el formulario a un controlador tuyo), solo complica las cosas. A menos que tengas que tratar esos datos en tu servidor con PHP, no sigas por ahí.

Además, si la página externa está protegida (o en el futuro la protegen) con Cross Site Request Forgery (CSRF) todo esto no funcionará…

Por eso te preguntaba lo de si está en otro dominio, se puede saber qué intentas hacer? :P :D

Muchas gracias por tu respuesta, más o menos de ese modo lo estoy tratando. La aplicación que estoy desarrollando es una que se conecta a un banco para hacer pagos con tarjetas de crédito y ellos por seguridad, obligan que los datos que inserta el cliente sean enviados directamente a su propia API. En realidad es una aplicación que requiere de mucha seguridad.