[英]Trouble with html form in drupal
这是我有问题的代码的一部分
if(user_is_logged_in())
{
$cover='<form method="post">
<input type="text" name="tekst" /><input type="submit" id="add" value="Dodaj adres okładki" />
</form></td></tr>';
}
else
{
$cover=" ";
}
$description .= '<tr><td width="60px">Title</td><td>'.$this->getTytul().'</td><td rowspan="20" width="150px">'.$cover.'</td></tr>';
当用户单击提交按钮时,我必须运行该查询
db_query(“ INSERT INTO okladki_publikacji(id_publikacji,adres_okladki)VALUES(”。$ this-> getId()。“,”。$ value_from_form。“)”);;
但是我不知道如何在drupal中做到这一点,我想要的是在表单中执行该查询的运行函数,但是如何呢? 动作= add_cover()不起作用
Drupal有一个了不起的表单API,可以帮助您轻松完成这种事情。
基本上,您使用此API定义了一个表单,然后定义了用户提交表单后即要调用的函数。 这是有关如何定义表单的示例:
function myformname_form($form, &$form_state){
// define the input field
$form['name'] = array(
'#type' => 'textfield',
'#title' => t('Dodaj adres okładki'),
);
// define the submit button
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Apply'),
);
return $form;
}
然后,您定义将在执行表单后执行的功能。 函数基本上必须命名为相同的+“ _submit”-Drupal将在幕后发挥作用,将其捆绑在一起。
function myformname_form_submit($form, &$form_state){
// and this will be where you execute the query you wanted.
}
建议安装Devel模块,以便您可以检查form_state变量-这是输入字段值所在的位置。
现在,您可以使用drupal_get_form在下面的代码中呈现表单,如下所示:
$cover = " ";
if(user_is_logged_in()) {
$form = drupal_get_form('myformname_form');
$cover = render($form);
}
$description .= '<tr><td width="60px">Title</td><td>'.$this->getTytul().'</td><td rowspan="20" width="150px">'.$cover.'</td></tr>';
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.