[support] [SOLVED] Re: Form submit via ajax and validate

D. Michel Morelli michel at ziobuddalabs.it
Wed Jun 6 23:24:28 UTC 2012


SOLVED with a patch that I have found in an issue.

M.
Il giorno 05/giu/2012, alle ore 18:01, D. Michel Morelli ha scritto:

> Hi all. I have a custom form, and I need to send it via ajax. I know that exist ['#ajax'] so  this is my form:
> 
> 	$form = array();
> 	$form['name'] = array(
> 		'#type'=> 'textfield',
> 		'#size' => 30,
> 		'#title'=> 'Nome',
> 		'#weight' => "float up"
> 
> 	);	
> 	$form['email'] = array(
> 		'#type'=> 'textfield',
> 		'#size' => 30,
> 		'#title'=> 'Email',
> 	);	
> 	$form['phone'] = array(
> 		'#type'=> 'textfield',
> 		'#size' => 30,
> 		'#title'=> 'Telefono',
> 	);	
> 	$form['msg'] = array(
> 		'#type'=> 'textarea',
> 		'#size' => 30,
> 		'#rows' => 3,
> 		'#title'=> 'msg',
> 	);	
> 	
> 	$form['my_captcha_element'] = array(
> 	    '#type' => 'captcha',
> 	    '#captcha_type' => 'captcha/Math',
> 	);
>   
> 	$form['invia'] = array(
> 		'#type'=> 'submit',
> 		'#value' => 'Invia',
> 		'#weight' => 40,
> 		'#ajax' => array(
> 			'callback' => 'xblock_form_contatto_ad_form_submit',
> 			'wrapper' => 'form_submit',
> 			),
> 		
> 	);	
> 	
> 	$form['markup'] = array(
> 		'#prefix' => '<div id="form_submit">',
> 		'#suffix' => '</div>',
> 		'#markup' => '',
> 	);
> 	
> 
> This is my callback function: 
> function xblock_form_contatto_ad_form_submit($form, $fs) {
>   $errors = form_get_errors();
>     if ($errors) {
>     	$out ="<span style='color: red;'>";
> 	    foreach ($errors as $k => $v) {
> 		    $out .= $v."<br>";
> 	    }
> 	    $out .="</span>";
> 	    return $out;
>     }
> 
>   $body = theme('xblock_form_contatto_ad_form',array('data' => $fs['values']));
>   mail("michel at ziobuddalabs.it","Contatto da form",$body);
>   return "<span style='color: green;'>Invio effettuato</span>";
> }
> 
> My problem is the form validation: I have a captcha and I do not insert nothing so captcha validate return an error, and I can see it in the json "command" result, but when I reinsert the captcha with correct "entry" I get this:
> 
> 0: {command:settings, settings:{basePath:/, pathPrefix:,…}, merge:true}
> 1: {command:insert, method:null, selector:null,…}
> command: "insert"
> data: "<span style='color: red;'>The answer you entered for the CAPTCHA was not correct.<br></span>"
> method: null
> selector: null
> settings: null
> 2: {command:insert, method:prepend, selector:null,…}
> command: "insert"
> data: "<div class="messages error">↵<h2 class="element-invisible">Error message</h2>↵ <ul>↵  <li>CAPTCHA session reuse attack detected.</li>↵  <li>The answer you entered for the CAPTCHA was not correct.</li>↵ </ul>↵</div>↵"
> method: "prepend"
> selector: null
> settings: null
> 
> 
> "CAPTCHA session reuse attack detected" ???
> 
> 
> M.
> --
> Michel 'ZioBudda' Morelli                       michel at ziobuddalabs.it
> Sviluppo applicazioni CMS DRUPAL e web dinamiche (LAMP+Ajax)
> 0200619074 - 3939890025 (mobile)--  Fax: +39-0291390660
> http://www.ziobuddalabs.it                      Skype: zio_budda
> 


--
Michel 'ZioBudda' Morelli                       michel at ziobuddalabs.it
Sviluppo applicazioni CMS DRUPAL e web dinamiche (LAMP+Ajax)
0200619074 - 3939890025 (mobile)--  Fax: +39-0291390660
http://www.ziobuddalabs.it                      Skype: zio_budda

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.drupal.org/pipermail/support/attachments/20120607/14266178/attachment.html 


More information about the support mailing list