繁体   English   中英

Drupal中的HTML表单出现问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM