2011-11-24 29 views
6

में हुक_फॉर्म_विलिडेट() में फॉर्म डेटा तक कैसे पहुंचे I simple_iz (i) नामक हुक_फॉर्म से लागू एक फॉर्म है जिसे मैं नीचे सबमिट करने के बाद अपने डेटा तक पहुंचना चाहता हूं वह कोड है जिसे मैंने लिखा है लेकिन मैं इसका उपयोग नहीं कर सकता एक बार जमा होने के बाद डेटा। मैं क्या गलत कर रहा हूं ?ड्रूपल 7

:

function simplequiz_form_validate($form, &$form_state) { 
// here is where we will validate the data and save it in the db. 
$thid = db_insert('simplequiz') 
->fields(array(

'questions' => &$form_state['question'], 
**I can't seem to access the value of a field questions** 

)) 
->execute(); 

return $thid; 
} 

नीचे अगर मैं $ form_state [ 'मूल्यों'] [ 'सवाल']

मैं नीचे त्रुटि मिलती है का उपयोग hook_form की मेरी कार्यान्वयन()

function simplequiz_form($form, &$form_submit) 
{ 

$form['question'] = array(
'#title' => t('Please input your question'), 
'#type' => 'text_format', 
'#required' => FALSE, 
'#description' => t('Here is where you can enter your questions'),  
); 

$form['submit'] = array(
'#type' => 'submit', 
'#value' => 'Submit', 
); 
return $form; 

} 

है

पीडीओएक्सप्शन: एसक्यूएलएसटीएटी [21 एस 01]: मूल्य सूची डालें कॉलम सूची से मेल नहीं खाती: 1136 कॉलम गिनती मूल्य गणना से मेल नहीं खाती टी पंक्ति 1: {simplequiz} (प्रश्न) मूल्यों में शामिल करें (: db_insert_placeholder_0_value,: db_insert_placeholder_0_format); ऐरे ([: db_insert_placeholder_0_value] => [: db_insert_placeholder_0_format] => filtered_html) simplequiz_form_submit() (/home/vishal/Dropbox/sites/dev/sites/all/modules/simplequiz/simplequiz.module के लाइन 245) में।

यह $ form_state [ 'मूल्यों'] का उपयोग कर काम किया [ 'सवाल'] [ 'मान']

उत्तर

9

यह सिर्फ मान्यता प्रयोजनों के लिए, hook_form_validate उपयोग करने के लिए सबसे अच्छा अभ्यास, मान्यता के अलावा और कुछ किया जाना चाहिए है hook_form_submit में।

किसी भी तरह से वे दोनों लगभग उसी तरह कार्य करते हैं।

सभी फॉर्म डेटा $form_state['values'] में संग्रहीत है, इसलिए $form['questions'] मानों तक पहुंचने के लिए, बस $form_state['values']['questions'] का उपयोग करें।

+0

यह काम करता है मुझे इसे थोड़ा सा बदलना पड़ा हालांकि $ form_state ['values'] ['question'] ['value'] –

+1

बस एक टिप्पणी: कोई hook_form_validate() नहीं है। इसे "फॉर्म वैध हैंडलर" के रूप में जाना जाता है। – pfrenssen

संबंधित मुद्दे