1

フォームを呼び出して送信するためのこのコードがあります..

<?php 
// hook_menu
function pricepackages_menu()
{
    $items = array();
    $items['membership/packages'] = array(
        'title' => t('Manage Membership Packages'),
        'page callback' => 'drupal_get_form',
        'page arguments' => array('pricepackages_form'),
       //'access callback' => TRUE,
       'access arguments' => array('access administration pages'),
    );
    return $items;
}
// FORM SHOW HOOK
function pricepackages_form($form, &$form_state)
{
    $form = array();

    $form['packagename'] = array(
        '#type' => 'textfield',
        '#title' => 'Package Name',
        //'attribute' => array('class' => 'package'),
        '#required' => TRUE,
    );
    $form['packageDescp'] = array(
        '#type' => 'textfield',
        '#title' => 'Package Short Description',
        //'attribute' => array('class' => 'package'),
        '#required' => FALSE,
    );
    $form['price'] = array(
        '#type' => 'textfield',
        '#title' => 'Package Price',
        //'attribute' => array('class' => 'package'),
        '#required' => TRUE,
    );
    $form['submit'] = array(
        '#type' => 'submit',
        '#value' => t('Submit'),
    );
    $form['submit'][] = array('package_get_form'=> array());

    return $form;
}

function package_get_form($form, &$form_state)
{
    drupal_set_message('working');
?>
    <script language="javascript">
        alert("aaa");
    </script>
<?php
return; 
    }
?>

しかし、これは適切に機能しておらず、特定のフォームでフォームが送信されていません...アラートもメッセージも表示されていません...

私を助けてください...

4

1 に答える 1

1

この部分は正しくありません:

$form['submit'][] = array('package_get_form'=> array());

送信コールバックを追加するには、単純に次のように記述します。

$form['submit'][] = 'package_get_form';

フォーム API はフォーム ID/コールバックに「_submit」を追加するデフォルトのコールバックを提供するため、この行も必要ありません。あなたの場合:

pricepackages_form_submit()
于 2014-10-25T08:28:01.133 に答える