0

すべて、新しいモジュールの開発に問題があります。初心者なので、あなたの親切な助けが必要です。

Info file
; $Id$
name="cities"
description="List of cities"
core=7.x

Module file

 <?php
    // $Id$

    /**
    *impliments hook_menu()
    */

    /**
    * @file
    * cities module
    .
    */



 function cities_menu()
    {


 $items=array();
    $items['cities']=array(
    'title' => 'Cities listed',
    'page callbacks' => 'cities_page',
    'access arguments'=>array('view content')
    );
    return $items;
    }

    /**
    *Build a from containing :
    *(1)Space to input volume
    *(2)A Submit ("Convert") button.
    */


    function cities_form($form,&$form_state){
$form['cities']=array(
'#type'=>'select',
'#title' => t('cities'),
'#size'=>5,
'#default_value' => array('City list' => 'City list'),
'#options' => array('Kolkata' => 'Kolkata', 'Mumbai' => 'Mumbai','Cnennai' => 'Cnennai', 'Srilanka' => 'Srilanka','Delhi' => 'Delhi', 'Siliguri' => 'Siliguri'),
'#description'=>t('The number of Cities listed here'),
);

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

return $form;
    }

    function cities_page($form,&$form_state)
         {


return cities_form('cities_form');

         }
    function cities_form_submit($form,&$form_state)
        {


$output=(
    $from_state['values']['default_value']);

    set_drupal_message($output);
         }
    ?>

But when I typed mysitename/cities in address bar it redirects me on localhost. これらを除いて、コンソールにエラー情報が見つかりませんでした。

私のコードを実行するのを手伝ってください。

ありがとう。

4

2 に答える 2

0

最初の推測:

<?php
function cities_menu() {
    $items['cities']=array(
    'title' => 'Cities listed',
    'page callbacks' => 'drupal_get_form',
    'page arguments' => array('cities_form'),
    'access arguments'=>array('view content'),
    );
    return $items;
    }
}

drupal_get_formフォームを正しくレンダリングするには、 を呼び出す必要があります ( で hook_form を使用しているように見えますが、からcities_form呼び出す必要はありません。 (フォーム自体をレンダリングするために使用する必要があるもの)も経由で呼び出すことができるため、これも必要ありません)。 )。drupal_get_formcities_pagedrupal_get_formhook_menu

したがって、この hook_menu を使用すると、citys_page 関数を完全にスキップできます。

于 2013-07-22T13:11:38.583 に答える