[support] Form submit via ajax and validate

D. Michel Morelli michel at ziobuddalabs.it
Tue Jun 5 16:01:54 UTC 2012


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

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


More information about the support mailing list