Vorrei creare una pagina di risposta ad una form. Es nella form inserisco Gabriele come nome e la pagina di risposta dopo il submit mi risponde Ciao Gabriele.
Lo so che è un esempio stupido ma volevo capire come fare.
Vi posto il codice di dove sono arrivato se qualcuno sa darmi qualche consiglio gli sarei molto grato.
<?php
/////Funzione per settare i permessi/////////////////////////////////
function prova_form_perm()
{
return array('access prova_form');
}
////////////////////////////FUNZIONE PER CREARE LA FORM///////////////////////////////////////////
function prova_form_crea()
{ // creazione del campo di testo
$form['subject'] = array
(
'#type' => 'textfield',
'#title' => t('Subject'),
'#size' => 50,
'#maxlengh' => 255,
'#description' => t('soggetto.'), );
//creazione del bottone submit
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Crea Dieta'),
);
return $form;
}
//funzione che chiama la drupal_get_form per creare veramente la form
function prova_form_prima(){
$sb = drupal_get_form('prova_form_crea');
return $sb;
}
//////////////Vorrei che questa funzione creasse una pagina contenente il dato salvato nella form creata sopra////////////
function prova_risposta_prima()
{
//Non so cosa metterci.
}
///Funzione per creare il menù
function prova_form_menu()
{
$items = array();
$items['prova_form'] = array(
'title' => 'provaform',
'page callback' => 'prova_form_prima',
'access arguments' => array('access prova_form'),
'type' => MENU_CALLBACK
);
////////////////////AGGIUNTO///////
$items['prova_risposta'] = array(
'title' => 'provarisposta',
'page callback' => 'prova_risposta_prima',
'access arguments' => array('access prova_form'),
'type' => MENU_CALLBACK
);
//////////////////////////////////////
return $items ;
}
function prova_form_crea_submit($form, &$form_state) {
drupal_redirect_form($form, $redirect = 'prova_risposta');
}
?>
Prova a impostare, nella funzione di submit del form (prova_form_crea_submit), il redirect nell'array form_state, invece che tramite drupal_redirect_form, in questo modo:
Follow me @DarthDrupal and @Dinamicamente.org
Dinamicamente.org
Scusami non mi sono spiegato bene. il redirect funziona è che non so come creare la pagina dinamica. Cioè non so come recuperare i dati sottomessi dalla form. Comunque grazie
Ciao,
le varie submission dovresti poterle ricavare con (nel tuo caso):
da chiamare ovviamente nella dunzione submit. In alternativa, dovresti poterle recuperare anche dall'array $_POST.
;)
Le possibili soluzioni sono due/tre secondo me (chi ha più dimistechezza con il codice pesante mi corregga :)):
- o salvi i valori che ti servono nell'array $_SESSION e te li riprendi nella funzione che ti crea la pagina dove fai il redirect
- oppure salvi i valori nel db in una tabella appositamente creata dal tuo modulo
- oppure, se vuoi che printi semplicemente un messaggio, puoi utilizzare sempre nella funzione di submit, drupal_set_message() per far printare a drupal un messaggio contenente i valori che ti interessano. Questo messaggio verrà poi visualizzato nella pagina in cui fai il redirect.
Follow me @DarthDrupal and @Dinamicamente.org
Dinamicamente.org
Innazittutto volevo ringraziarvi.
Uno dei metodi funziona mentre quello col post non capisco perchè non funziona.
Vi posto il codice funzionante(solo le due funzioni cambiate) :
Grazie ancora anche se proverò a lavorare per far funzionare anche il metodo $_POST
Ho capito perchè non funzionava il metodo con post.
Bisogna aggiungere nella funzione di creazione della form
e poi cambiare il codice della funzione
Grazie ancora dell'aiuto