Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

Form weiterleitung

Eingetragen von crackAT (17)
am 28.03.2015 - 20:41 Uhr in
  • Modul-Entwicklung
  • Drupal 7.x oder neuer

Hallo,

erkennt vielleicht jemand den Fehler? Ich habe ein Suchformular, und will nach dem Submit auf eine Result Seite, erstellt als Template Datei. Funtioniert auch, Daten werden übergeben nur bekomm ich ein "Zugriff verweigert" selbst als Admin.

<?php

function search_menu()
{
  
$items['search/result'] = array(
       
'title' => 'Search Result',
       
'access arguments' => array('access content'),
       
'access callback' => TRUE,

    );

    return
$items;
}

function
search_theme()
{
return array(
       
'search-result' => array(
           
'variables' => array('search_record' => NULL),
           
'template' => 'search-result',
        ),
    );
}




function
search_form($form, &$form_state)
{
   
$form['#action'] = 'search/result';

   
$form['search_type'] = array(
       
'#type' => 'select',
       
'#options' => array(
           
0 => t('BEREICH WÄHLEN'),
           
3 => t('BLOG'),
           
4 => t('NEWS'),
        ),

    );
   
$form['search_text'] =
        array(
           
'#type' => 'textfield',
           
'#default_value' => '',
           
'#size' => 60,
           
'#maxlength' => 128,
           
'#required' => TRUE,
        );
    if (!empty(
$form_state['search-result']['search_result'])) {
       
$form['result'] = array(
           
'#markup' => $form_state['search-result']['search_result'],
        );
    }
   
$form['submit'] = array('#type' => 'submit',
       
'#value' => 'Suchen',
       
'#submit' => array('search_form_submit'),
    );


    return
$form;
}

function
search_form_submit($form, &$form_state)
{

   
$searchtext = $form['search_text']['#value'];
   
$type = $form['search_type']['#options'][$form['search_type']['#value']];

    if (
$form['search_type']['#value'] == "0") {
       
$result = search_database($searchtext);
    } else {
       
$result = search_database($searchtext, $type);
    }
   
$form_state['search-result']['search_result'] = theme('search-result', array(
           
'search_record' => $result)
    );
   
$form_state['rebuild'] = TRUE;
}



?>

$form_state['redirect'] = 'search/result'; Funktioniert leider garnicht, da bleibt er auf der Seite auf der das Formular abgeschickt wird. :/

Danke

LG

‹ [gelöst] Callback mit neuen Argumenten aufrufen Form weiterleitung ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Heisst das Modul wirklich

Eingetragen von Sense (1560)
am 29.03.2015 - 16:24 Uhr

Heisst das Modul wirklich "search"? Wenn ja solltest Du hier den Namen ändern um nicht in Konflikt mit dem Core "Search" Modul zu geraten. Ich denke hier könnte auch das Hauptproblem liegen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, nein das Module heißt

Eingetragen von crackAT (17)
am 29.03.2015 - 16:27 Uhr

Hallo,

nein das Module heißt nicht nur "search" steht noch etwas davor, habe das aber weggenommen damit es einfacher zu lesen ist.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Im hook_menu() fehlt der

Eingetragen von Sense (1560)
am 29.03.2015 - 16:41 Uhr

Im hook_menu() fehlt der "page callback" und die "page arguments" oder ist das alles vorhanden?

  • Anmelden oder Registrieren um Kommentare zu schreiben

War vorhanden, funktioniert

Eingetragen von crackAT (17)
am 29.03.2015 - 17:06 Uhr

War vorhanden, funktioniert nicht so wie es soll :/

Was gehört hier eingetragen, damit bei Submit auf die Seite weitergeleitet wird und das Template das darstellt was es soll, mit den übergebenen Werten?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Bau Dir das mal grad

Eingetragen von Sense (1560)
am 29.03.2015 - 17:33 Uhr

Bau Dir das mal grad zusammen, hab das irgendwo hier noch rumfliegen

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ist jetzt ungetestet aber so

Eingetragen von Sense (1560)
am 29.03.2015 - 18:45 Uhr

Ist jetzt ungetestet aber so

<?php
/**
* Implements hook_form_menu().
*/
function sensesearch_menu() {
 
$items = array();
 
$items['sensesearch'] = array(
   
'title' => 'Search',
   
'page callback' => 'drupal_get_form',
   
'page arguments' => array('sensesearch_form'),
   
'access arguments' => array('access content'),
  );

 
$items['sensesearch/%/%'] = array(
   
'title' => 'Search result page',
   
'page callback' => 'sensesearch_result_page',
   
'page arguments' => array(1,2)
   
'access arguments' => array('access content'),
  );

  return
$items;
}

/**
* Implements hook_search().
*/
function sensesearch_theme() {
  return array(
   
'sensesearch_result' => array(
     
'variables' => array('sensesearch_record' => NULL),
     
'template' => 'sensesearch-result',
    ),
  );
}

function
sensesearch_form($form, &$form_state) {
 
$form = array();
 
$form['search_type'] = array(
   
'#type' => 'select',
   
'#options' => array(
     
0 => t('BEREICH WÄHLEN'),
     
3 => t('BLOG'),
     
4 => t('NEWS'),
    ),
  );
 
 
$form['search_text'] = array(
   
'#type' => 'textfield',
   
'#default_value' => '',
   
'#size' => 60,
   
'#maxlength' => 128,
   
'#required' => TRUE,
  );
 
 
$form['submit'] = array(
   
'#type' => 'submit',
   
'#value' => t('Search'),
  );

  return
$form;
}

function
sensesearch_form_submit($form, &$form_state) {
 
$form_state['redirect'] = 'sensesearch/' . $form_state['values']['search_type'] . '/' . $form_state['values']['search_text'];

 
// Optional: Redirect with GET params but additional result page needed in hook_menu().
  // $form_state['redirect'] = array('sensesearch', array('query' => array('search_type' => $form_state['values']['search_type'], 'search_text' => $form_state['values']['search_text']));
}

function
sensesearch_result_page($search_type = NULL, $search_text = NULL) {
  if (
$search_type == 0) {
   
$result = search_database($searchtext);
  } else {
   
$result = search_database($searchtext, $search_type);
  }

  return
theme('sensesearch_result', array('search_record' => $result));
}
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Super vielen vielen dank!

Eingetragen von crackAT (17)
am 29.03.2015 - 18:35 Uhr

Super vielen vielen dank! Funktioniert einwandfrei.

paar kleine schönheitsfehler drinnen und beim "page callback" fehlt noch das "_page" hinten drann.

$items['sensesearch/%/%'] = array(
'title' => 'Search result page',
'page callback' => 'sensesearch_result_page',
'page arguments' => array(1,2)
'access arguments' => array('access content'),
);

sonst perfekt! Danke!!!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Habs im Post angepasst

Eingetragen von Sense (1560)
am 29.03.2015 - 18:45 Uhr

Habs im Post angepasst

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
Weiter

Neue Kommentare

  • Verwende doch das Tag dafür,
    vor 6 Tagen 14 Stunden
  • Guckst du hier: step by step
    vor 6 Tagen 4 Stunden
  • Guckst du hier: step by step
    vor 6 Tagen 4 Stunden
  • Ich habe ja keine Angst vor
    vor 2 Wochen 1 Tag
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 2 Wochen 3 Tagen
  • Vielen Dank erst einmal, aber
    vor 2 Wochen 5 Tagen
  • Du hast die "Trusted host
    vor 2 Wochen 5 Tagen
  • Bitte genauer den aktuellen Lösungs-Ansatz beschreiben
    vor 4 Wochen 4 Tagen
  • Git und rsync sind die wichtigsten Werkzeuge
    vor 5 Wochen 1 Tag
  • Arrrrg. Nix Tabelle :-D /*
    vor 9 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250284
Registrierte User: 20499

Neue User:

  • Inga GuAph
  • Robertolix
  • DavidBit

» Alle User anzeigen

User nach Punkten sortiert:
wla9464
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 17 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association