that should be the view
<div id="formularioajax">
<form id="PreguntaResponderForm">
<?=$form->textarea('Pregunta.texto',array('rows' => 5,'cols' =>
50)); ?>
<?=$form->end($mb->localizacion("botonEnviar", $idiomaUsuario)); ?>
<?=$mb->formularioAjax("formularioajax", "pregunta", "responder",
$idPregunta."/".$tipoRespuesta, array("texto"));?>
</div>
'mb' is a helper, whose 'formularioAjax' creates the ajax form:
/* Creacion de un formulario que se enviara por JQuery */
function formularioAjax($divId, $controlador, $funcion, $parametros,
$campos, $callbacks = null) {
$output = "";
$output.= '<script type="text/javascript">';
$output.= '$(function(){';
$output.= '$("form#'.ucfirst(strtolower($controlador)).ucfirst
(strtolower($funcion)).'Form").submit(function() {';
foreach ($campos as $item) {
$output.= 'var '.$item.' = $("#'.ucfirst(strtolower
($controlador)).ucfirst(strtolower($item)).'").attr("value");';
}
$output.= '$("#'.$divId.'").html($.ajax({';
$output.= 'type: "POST",';
$url = "/".strtolower($controlador)."s/".strtolower($funcion);
if ($parametros != '') {
$url.= "/".$parametros;
}
$output.= 'url: "'.$url.'",';
$datos = "";
foreach ($campos as $item) {
$datos.= '+"&datar['.ucfirst(strtolower($controlador)).']['.
$item.']="+'.$item;
}
$output.= 'data: "'.substr($datos, 3).',';
if ($callbacks != '') {
$output.= 'complete: function() {'.$callbacks.'},';
}
$output.= 'async: false';
$output.= '}).responseText);';
$output.= 'return false;';
$output.= '});';
$output.= '});';
$output.= '</script>';
return $output;
} // function: formularioAjax
it works perfectly on a simple view... but not in the pop-up div
thanks
Rohman
On Sep 18, 5:03 pm, Bert Van den Brande <[email protected]> wrote:
> Sorry, but it still sounds to me that the form inside your popup is being
> submitted like a normal form.
>
> Maybe show some code ?
>
> On Fri, Sep 18, 2009 at 10:58 AM, 浪漫様 <[email protected]> wrote:
>
> > walther, thanks for the reply... but i guess you didn't read well my
> > post neither...
> > I'm able to send the form with ajax ( also using AjaxForm ) from a
> > single view without any problem... the problem comes when you try to
> > do it from a facebook style div-window that pops up...
> > imagine i am reading a post and i want to send the comment with an
> > ajax form... yes... that works without any problem, the form is
> > already located on the main ( post ) view, and form is sent and
> > comments div is updated... no problem.
> > now imagine you are building a facebook-alike social networking, and
> > when clicking on a user's 'send message to xxx' link i want to open a
> > pop-up ajax window to send message to him... but not from the main
> > view's form... from a form located on a div appearing on screen ( i
> > guess you are familliar with facebook or other sites that do that )...
> > then the form is sent, but the page is reloaded while what i want is
> > to refresh the ajax-window div. ( that's the problem )
> > thanks
>
> > Rohman
>
> > On Sep 18, 4:49 pm, Walther <[email protected]> wrote:
> > > Take a look at the AjaxForm plugin for jQuery. You need to submit the
> > > form using AJAX as well.
>
> > > On Sep 18, 10:15 am, 浪漫様 <[email protected]> wrote:
>
> > > > i don't think that is the problem... facebook can do it without
> > > > iFrames and works perfectly no matter what browser.
> > > > moreover... i'm talking about same domain's forms... nothing to do
> > > > with external domains.
> > > > if i'm building a facebook-alike social networking, and when clicking
> > > > on a user's link i want to open a pop-up ajax window to send message
> > > > to him... where is the cross-domain issue?
> > > > thanks for the reply : ) just i think you confuse the topic
>
> > > > Rohman
>
> > > > On Sep 18, 3:50 pm, wirtsi <[email protected]> wrote:
>
> > > > > I think you are running into the "same-origin-issue" ... most
> > browsers
> > > > > only allow ajax-requests so the same domain. Check out this
> > posthttp://www.petefreitag.com/item/703.cfm
>
> > > > > With iframes you can post data freely to any other domain. I'd just
> > > > > like to mention here, that if you want to post uploaded files, you'll
> > > > > also need an iframe form since you can't upload files via ajax calls
>
> > > > > On 18 Sep., 09:12, 浪漫様 <[email protected]> wrote:
>
> > > > > > hello all,
> > > > > > i had been successful on sending forms via ajax on a view and
> > updating
> > > > > > some divs instead of reloading the page without much problem,
> > however,
> > > > > > when the form is located on a facebook-like ajax pop-up div, the
> > page
> > > > > > is always reloaded on submission... and that's not what i
> > expected...
> > > > > > i found a solution that is to place an iFrame with the ajax form
> > > > > > inside the ajax window... however, i would like to be able to do it
> > > > > > without iFrames... just like facebook or other sites does.
>
> > > > > > do somebody know any way to accomplish that? all examples, codes,
> > > > > > etc... i had been trying or finding online ( even using JQuery
> > plug-
> > > > > > ins like Boxy, or doing it myself with same result ) has the same
> > > > > > behavior... so i can not do data validation on ajax div-window's
> > forms
> > > > > > or just simply send a 'whatever action done' message after
> > submission.
>
> > > > > > thanks in advance.
>
> > > > > > Rohman
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---