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.