Vorrei sapere come posso creare una pagina in PHP "pagina.php"
e poi voglio fare eseguire il codice contenuto in quella pagina con un form del genere:
<form id="ID" method="post" action="pagina.php">
come posso fare?
scusate la domanda da niubbo..
Ciao!
Se ti basta potresti fare un blocco (che accetta codice php).
Se no potresti installarti il modulo views e farti una pagina con codice php dentro.
Marco
usa le Form API, ci picchi un attimino la testa all'inizio, ma poi sfrutti a pieno le funzioni di Drupal, con le tutti i vantaggi che questo comorta....
Ciao
Marco
--
My blog
Working at @agavee
mavimo... riusciresti a spiegarmi un pochino meglio?
Il fatto è che non so neanche DOVE sbattere la testa... :-D
mi fai un esempio? dal sito drupal.org ho trovato:
function drupal_get_form($form_id) {
// In multi-step form scenarios, the incoming $_POST values are not
// necessarily intended for the current form. We need to build
// a copy of the previously built form for validation and processing,
// then go on to the one that was requested if everything works.
$form_build_id = md5(mt_rand());
if (isset($_POST['form_build_id']) && isset($_SESSION['form'][$_POST['form_build_id']]['args']) && $_POST['form_id'] == $form_id) {
// There's a previously stored multi-step form. We should handle
// IT first.
$stored = TRUE;
$args = $_SESSION['form'][$_POST['form_build_id']]['args'];
$form = call_user_func_array('drupal_retrieve_form', $args);
$form['#build_id'] = $_POST['form_build_id'];
}
else {
// We're coming in fresh; build things as they would be. If the
// form's #multistep flag is set, store the build parameters so
// the same form can be reconstituted for validation.
$args = func_get_args();
$form = call_user_func_array('drupal_retrieve_form', $args);
if (isset($form['#multistep']) && $form['#multistep']) {
// Clean up old multistep form session data.
_drupal_clean_form_sessions();
$_SESSION['form'][$form_build_id] = array('timestamp' => time(), 'args' => $args);
$form['#build_id'] = $form_build_id;
}
$stored = FALSE;
}
// Process the form, submit it, and store any errors if necessary.
drupal_process_form($args[0], $form);
if ($stored && !form_get_errors()) {
// If it's a stored form and there were no errors, we processed the
// stored form successfully. Now we need to build the form that was
// actually requested. We always pass in the current $_POST values
// to the builder function, as values from one stage of a multistep
// form can determine how subsequent steps are displayed.
$args = func_get_args();
$args[] = $_POST;
$form = call_user_func_array('drupal_retrieve_form', $args);
unset($_SESSION['form'][$_POST['form_build_id']]);
if (isset($form['#multistep']) && $form['#multistep']) {
$_SESSION['form'][$form_build_id] = array('timestamp' => time(), 'args' => $args);
$form['#build_id'] = $form_build_id;
}
drupal_prepare_form($args[0], $form);
}
return drupal_render_form($args[0], $form);
}
ok, quella è la funzione che usi e non te ne frega nulla di come funziona, in pratica tu crei una variabile $form contenente i vari elementi del form che ti servono, dopo di che con drupal_get_form($form) viene generato il codice html necessario (e molto altro). cerca sul form che se ne è già parlato ampiamente. se hai domante più specifiche o dubbi (dopo che hai cercato e provato un pò) chiedi pure nella sezione CORRETTA del forum.
Ciao
Marco
--
My blog
Working at @agavee
Da un punto di vista pratico per fare in fretta sanza studiare le funzioni di drupal potresti anche usare codice php "come sei abituato" usando come formato di input PHP, però dal momento che usi drupal non avrebbe molto senso rinunciare alle sue funzioni.
Vendita Vini - Wine Shop
ok grazie mavimo... ora è tardi e sono stanco e domani lavoro uff...
ho letto un tuo post passato dove metti il codice di un form di esempio...
dove prendo la lista delle opzioni? ad esempio se volessi la checkbox selezionata come devo fare?
mi sa che aprirò un post in sviluppo... grazie tanto dell'aiuto mavimo!
eh ma come farei a far eseguire il codice contenuto in una pagina.php da un form senza quelle funzioni? Tu hai avuto lo stesso problema? come hai risolto?
crea un nodo e usa come formato di input PHP e inserendo il codice qui sotto. pubblicalo, dovresti vedere un campo di testo e una select box con un tasto submit "Iscriviti".
qui sotto l'action del form è in questa stessa pagina, ma potresti dare all'attributo action pagina.php e a quel punto pagina.php fa quello che tu gli dici di fare.
però è meglio usare le funzioni di drupal..
<?php
if (isset($_REQUEST['email'])) {
if ($_REQUEST['email'] != '') {
$sender_email = ereg("^[^@ ]+@[^@ ]+\.[^@ \.]+$", $_REQUEST['email']);
$subject_mail = "Subscribe";
$body_mail = "Regione: ".$_REQUEST['regione'];
if ($_REQUEST['regione'] == '0') {
echo '<p>Attenzione! Occorre inserire una Regione!</p>';
if (!$sender_email) {
echo '<p>Attenzione! Occorre inserire un indirizzo email valido!</p>';
}
}
else {
if ($sender_email) {
if (mail("<a href="mailto:email@mynewsletter.it" rel="nofollow">[email protected]</a>", "$subject_mail", "$body_mail", "From:".$_REQUEST['email'])) {
echo '<p>Iscrizione avvenuta con successo</p>';
}
}
else {
// }
}
}
else {
echo '<p>Attenzione! Occorre inserire un indirizzo email!</p>';
}
}
?>
<p>I Campi con l'asterisco sono obbligatori</p>
<form action="" method="post">
<p>La tua email*: <input type="text" size="10" name="email" value="<?php if (isset($_REQUEST['email'])) echo $_REQUEST['email']; ?>" />
La tua regione*:
<select name="regione">
<?php
if ((isset($_REQUEST['regione'])) && ($_REQUEST['regione'] != '0')) {
echo '<option selected value="'.$_REQUEST['regione'].'">'.$_REQUEST['regione'].'</option>';
}
else {
echo '<option value="0" selected>Scegli...</option>';
}
?>
<option>---------------</option>
<option value="Abruzzo">Abruzzo</option>
<option value="Basilicata">Basilicata</option>
<option value="Calabria">Calabria</option>
<option value="Campania">Campania</option>
<option value="Emilia-Romagna">Emilia-Romagna</option>
<option value="Friuli-Venezia Giulia">Friuli-Venezia Giulia</option>
<option value="Lazio">Lazio</option>
<option value="Liguria">Liguria</option>
<option value="Lombardia">Lombardia</option>
<option value="Marche">Marche</option>
<option value="Molise">Molise</option>
<option value="Piemonte">Piemonte</option>
<option value="Puglia">Puglia</option>
<option value="Sardegna">Sardegna</option>
<option value="Sardegna">Sardegna</option>
<option value="Toscana">Toscana</option>
<option value="Trentino-Alto Adige">Trentino-Alto Adige</option>
<option value="Umbria">Umbria</option>
<option value="Valle d'Aosta">Valle d'Aosta</option>
<option value="Veneto">Veneto</option>
</select>
<input type="submit" value="Iscriviti" name="invia" /></p>
</form>
Vendita Vini - Wine Shop
ma se il mio codice php contiente degli inlcude ad altri file, come un config.php, inserimento.php..
come faccio?
Discussione interessante !!! Mi aggiungo per rimanere aggiornato :)
http://www.7thlord.com