Form aggiunta contenuto su pagina e AJAX

5 contenuti / 0 new
Ultimo contenuto
Form aggiunta contenuto su pagina e AJAX

Buonasera,

vorrei, in una pagina X del sito, inserire in basso il form di creazione di un contenuto. Alla pressione del pulsante di submit del form, vorrei che si restasse sulla stessa pagina confermando all'utente l'avvenuta creazione del nuovo contenuto.

Ho dunque creato un blocco PHP e utilizzato il seguente codice:

<?php
$form
= node_add('status');
$output = drupal_render($form);
print
$output;
?>

E in effetti mi viene mostrato il form di inserimento per un nuovo contenuto di tipo Status.

Per AJAX, a livello di template.php ho:

<?php
        $form
['actions']['submit'] = array(
         
"#type" => "submit",
         
"#value" => "Aggiorna",
         
"#ajax" => array(
         
"callback" => "status_node_ajax_submit",
         
"wrapper" => "formwrapper",
         
"effect" => "fade")
        );
?>

E ho creato anche un modulo custom per includere node.pages.inc nell'hook menu_alter:

<?php
  $items
['file/ajax']['file path'] = drupal_get_path('module', 'node');
 
$items['file/ajax']['file'] = 'node.pages.inc';
 
$items['system/ajax']['file path'] = drupal_get_path('module', 'node');
 
$items['system/ajax']['file'] = 'node.pages.inc';
?>

Il problema è questo: cosa devo inserire in status_node_ajax_submit in modo che il form venga gestito e il nodo effettivamente creato? Al momento non accade nulla (ho errore 500 nella popup AJAX). Al momento la funzione è:

<?php
function status_node_ajax_submit($form, &$form_state) {
 
drupal_validate_form('status_node_form', $form, $form_state);
  if (
form_get_errors()) {
   
$form_state['rebuild'] = TRUE;
    return
$form;
  }
 
drupal_form_submit($form, $form_state); // qui ho errori
 
$output = array(
   
'#markup' => 'Form inviato.'
 
);
  return
$output;
}
?>

Grazie mille.

Drupal Version:

Meggis (non verificato)
Ritratto di Anonimo

Meggis wrote:
https://www.drupal.org/project/asaf[/quote]

Ciao Meggis,

grazie mille, sembra faccia al caso mio.
Il problema, però, è che dopo il clic sul pulsante per un secondo vedo la notifica di contenuto creato (quella classica di Drupal), ma poi passo comunque alla pagina del contenuto creato (cosa che non vorrei).

Da cosa potrebbe dipendere?

Grazie mille nuovamente.

Buonasera,

ho risolto con questo suggerimento: https://www.drupal.org/node/2277137#comment-8828853.

Saluti.

Meggis (non verificato)
Ritratto di Anonimo

Well done!