Nasıl benim Drupal formu herhangi diğer iç sayfa sunabilirsiniz?

0 Cevap php

Ben Drupal formları ile ilgili bir sorun yaşıyorum. Bunu çözmek için bir yol düşünemiyorum ve orada herhangi bir beyin benim soruna çözüm olup olmadığını merak ediyordum.

Ben bu formu var:

<?php
function mymodule_myform(){
  $form['#action'] = url('search/cards');
  $form['whatwhere']['what'] = array(
    '#type' => 'textfield',
    '#title' => t('What?'),
    '#maxlength' => 80,
    '#required' => TRUE,
  );
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Search'),
  );
}
?>

Which, as you can see, is supposed to submit all info to www.example.com/search/cards. This will indeed submit my form to the desired URL. However, without the mymodule_menu() hook defining the path, it will end in a 404.

Yani ekleyin:

<?php
function mymodule_menu(){
  $items['search/%'] = array(
    'title'  => t('Search Results'),
    'page callback' => 'mymodule_main',
    'access arguments' => array('access content'),
    'file' => 'mymodule.inc',
    );
}
?>

Ve, mymodule.inc dosyasına benim işlevi oluşturmak olacak mymodule_main():

<?php
function mymodule_main(){
  print_r($_POST);
  die(); // ### Note the die(); ###

  return 'Just searched: '. $_POST['what'];
}
?>

Bunun tam olarak gibi bırakırsanız, tabii ki PHP sağ ekranda benim form bilgi yazdırdıktan sonra komut dosyası yürütme sona erecek. Tüm iyi!

Ben kaldırmak Ancak, die(), bu işlevi iki kez çağrılır görünüyor, ve ikinci çağrı .. mymodule_menu() bir şekilde geçersiz görünüyor artık doldu $ _POST yok ne olursa olsun işleyici yapıyor göndermek formu ...

Soru: How can I submit my form to any other internal page without having the 404 and keep my form info?

Şimdiden teşekkürler.

0 Cevap