标签: drupal-fapi

如何在Drupal中覆盖表单操作?

我最初在另一个线程中启动了这个问题,但该线程有点,有点回答,现在我主要想知道如何指定另一个表单动作...我尝试使用下面的代码,但表单操作,当输出时,仍然没有改变,虽然看着print_r($form),它正确地改变了...为什么它没有恢复?

function mytheme_user_profile_form($form) {
        global $user;
        $uid = $user->uid;
        //print '<pre>'; print_r($form); print '</pre>';
    $category = $form['_category']['#value'];

    switch($category) {
            case 'account':
                $form['#action'] = '/user/'.$uid.'/edit?destination=user/'.$uid;
                        break;
        case 'education':
                        $form['#action'] = '/user/'.$uid.'/edit/education?destination=user/'.$uid;
                        break;
        case 'experience':
                        $form['#action'] = '/user/'.$uid.'/edit/experience?destination=user/'.$uid;
                        break;
            case 'publications':
                        $form['#action'] = '/user/'.$uid.'/edit/publications?destination=user/'.$uid;
                        break;
        case 'conflicts':
                        $form['#action'] = '/user/'.$uid.'/edit/conflicts?destination=user/'.$uid;
                        break;
    }

        //print '<pre>'; print_r($form); print '</pre>';
        //print $form['#action'];
        $output .= drupal_render($form);
        return $output;
Run Code Online (Sandbox Code Playgroud)

forms action drupal drupal-fapi drupal-alter

4
推荐指数
1
解决办法
2万
查看次数

Drupal SQL注入攻击预防和表单中的撇号处理

在典型的PHP应用程序中,我曾经在使用SQL插入之前使用mysql_real_escape_string.但是我无法在Drupal中这样做,所以需要一些帮助.没有任何类似的功能,用撇号的用户输入会破坏我的代码.

请建议.

谢谢

我的SQL如下:

$ sql ="INSERT INTO some_table(field1,field2)VALUES('$ field1','$ field2')";

db_query($的SQL);

drupal drupal-6 drupal-fapi

4
推荐指数
1
解决办法
2205
查看次数

Drupal Form API - 使用foreach循环来构建表单

我正在构建一个Drupal模块,使用管理表单将图标绑定到特定页面.放置在某个目录中的每个图像都需要输出,旁边的选择框显示所有主要链接标题.

我使用foreach循环构建了表单,但是当我dpm($form);在_submit函数中检查输出时,每个图像页面元素的#value总是等于为最后一个图像设置的值.

这是我的代码:

function titleicon_admin_settings() {


  $settings = variable_get('titleicon_settings', $default);

  //build an array of primary link titles
  $primary_links_items = menu_primary_links();
  foreach ($primary_links_items as $item) {
    $title = $item['attributes']['title'];
    $href = $item['href'];
    $titles[$href] = $title;
  }

  //build array of icons
  $directory = file_directory_path() . '/icons';
  $mask = '(jpg|jpeg|gif|png|JPG|JPEG|GIF|PNG)';
  $icons = file_scan_directory($directory, $mask);



  foreach ($icons as $icon) {
    $name = $icon->name;
    $path = base_path() . $icon->filename;
    $html = '<img src="' . $path . '" width="50" height="50" />';
    $default_value …
Run Code Online (Sandbox Code Playgroud)

php foreach drupal drupal-fapi

4
推荐指数
1
解决办法
2417
查看次数

hook_form_submit没有被调用

我正在尝试提交表单并使用hook_form_submit.

问题是表单是通过ajax显示的,这导致hook_form_submit没有被调用.

$items['ajaxgetform/%'] = array(  
  'page callback' => 'ajaxgetform',  
  'access arguments' => array('access content'),  
  'type' => MENU_CALLBACK  
);   

function ajaxgetform($form_id) {    
  drupal_get_form($form_id);  
  return drupal_json($panel);  
}  

function_myform_form($form_state) {  
  $form['myform'] = array(  
    '#title' => 'myform value',  
    '#type' => 'textfield',  
    '#default_value' => 'myform default value'  
  );  

  $form['#action'] = url('myurl');

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

  $form['#ajaxsubmit'] = TRUE;  
    return $form;  
  }  
Run Code Online (Sandbox Code Playgroud)

hook_form_alter() 确实被召唤了.

下面没有被调用?

function myform_form_submit($form, $form_state) {   
  // ...  
} 
Run Code Online (Sandbox Code Playgroud)

我不确定这是否是一个常见的问题,但我已经被困了几个小时试图让它工作.

如果我删除 $form['#action'] = url('myurl'); myform_form_submit()被调用.但是我得到了一个带有jason脚本的白色屏幕.

drupal drupal-6 drupal-fapi

3
推荐指数
1
解决办法
8083
查看次数

如何以编程方式将表单添加到Drupal 7中的节点?

我需要在Drupal 7中向节点添加一个程序化表单.如何将表单附加到节点?

function addtabexample_form($node, &$form_state) {
  $type = node_type_get_type($node);

  $form['title'] = array(
    '#type' => 'textfield', 
    '#title' => check_plain($type->title_label), 
    '#default_value' => !empty($node->title) ? $node->title : '', 
    '#required' => TRUE, 
    '#weight' => -5,
  );

  $form['field1'] = array(
    '#type' => 'textfield', 
    '#title' => t('Custom field'), 
    '#default_value' => $node->field1, 
    '#maxlength' => 127,
 );


  return $form;
}
Run Code Online (Sandbox Code Playgroud)

php drupal drupal-7 drupal-fapi drupal-forms

3
推荐指数
1
解决办法
6591
查看次数

Drupal 7 FAPI-在验证或提交处理程序中添加表单元素

是否可以在drupal 7模块的验证或提交函数中添加其他表单元素?以下代码工作,图像显示在窗体上:

function test1_form($form, &$form_state)
{
     $form['image']=array(
           '#markup'=>'<img src="sites/all/modules/create_ad/th.jpeg"><br/>', //replace with your own image path
     );

     $form['submit'] = array(
           '#type' => 'submit',
           '#value' => 'Submit',
     );
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在提交函数中提交后显示图像,如下所示,它不起作用:

function test1_form($form, &$form_state)
{
     $form['submit'] = array(
           '#type' => 'submit',
           '#value' => 'Submit',
     );
}

function test1_form_submit($form,&$form_state)
{
     $form['image']=array(
           '#markup'=>'<img src="sites/all/modules/create_ad/th.jpeg"><br/>', //replace with your own image path
     );
}
Run Code Online (Sandbox Code Playgroud)

欢迎任何积极的帮助.谢谢.

php drupal-7 drupal-fapi drupal-forms drupal-modules

3
推荐指数
1
解决办法
2735
查看次数

在drupal 7中的块内创建一个自定义表单

我知道如何使用模块创建一个块,我知道如何使用表单api创建自定义表单.

现在,我想在我创建的块中添加此自定义表单.

php drupal drupal-7 drupal-fapi drupal-forms

3
推荐指数
1
解决办法
3820
查看次数

如何设置Drupal 7表单元素的ID属性?

我想设置ID使用表单API在模块中创建的表单元素的属性。

drupal drupal-7 drupal-fapi

3
推荐指数
1
解决办法
6068
查看次数

如何将自定义表单插入Drupal节点视图并在提交时处理节点的数据?

我们将销售订单从会计系统导入Drupal 6站点.

我们设置了一个名为orders的内容类型.

我想为我们的运输提供商建立一个运输模块(目前还没有).

我理解如何构建"块"模块和"内容"模块.

构建模块的最佳方法是什么,该模块将出现在我们的订单节点的底部,这些模块提供了他们需要完成的表单(反过来会处理运送)

如果可能的话,我想在不创建不同内容类型的情况下这样做

drupal-6 drupal-fapi drupal-modules

2
推荐指数
1
解决办法
6309
查看次数

Drupal 7 - #AJAX刷新不显示drupal_set_message错误

问题:

在Drupal 7的Form API中,当使用#AJAX刷新字段时,在刷新整个页面之前,不会显示验证中的错误消息.我看到我刷新的字段在错误状态中突出显示,但用户没有看到相关的消息,直到它为时已晚(他们重新加载页面,或转到另一页).

我开始在这个庄园中手动处理错误堆栈:Drupal.org - 在验证过程中筛选出特定的错误,但我有一个复杂的表单,并且有足够的时间来完成此任务.必须有一些方法来刷新堆栈并向用户显示消息,而无需手动处理所有内容.

注意:我正在使用带有回调的多命令,因此使用它是我的选择.

  $commands[] = ajax_command_replace("#my_wrapper", render($form['test']['field_a']));
  $commands[] = ajax_command_replace("#another_wrapper", render($form['test']['field_b']));

  return array('#type' => 'ajax', '#commands' => $commands);
Run Code Online (Sandbox Code Playgroud)

思考?

ajax drupal drupal-fapi

2
推荐指数
1
解决办法
4227
查看次数