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

  • Canvas Palette: Eine fertige Komponentenbibliothek für Drupal Canvas
  • Hilfe zu Updates oder Composer
  • Vergleich Drupal und Contao
  • [geloest] Blocks in Bootstrap nebeneinander darstellen und nicht untereinander
  • DrupalCamp Frankfurt 27-28 November 2026
  • Bitte mein Bentzerkonto löschen
  • Beim Aufruf einiger Inhalte erhalte ich folgende Fehlermeldung
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
Weiter

Neue Kommentare

  • anyone has a working Betaflight mirror right now?
    vor 1 Tag 7 Stunden
  • Vielen Dank für Ihren
    vor 1 Tag 11 Stunden
  • Composer ist sehr ratsam
    vor 3 Tagen 10 Stunden
  • Vielen Dank für den
    vor 5 Tagen 20 Stunden
  • Die alten CMS Vergleiche von contentmanager.de
    vor 6 Tagen 9 Stunden
  • Gut gemacht
    vor 6 Tagen 9 Stunden
  • Layout Builder etc. z.B. für Landing Pages
    vor 6 Tagen 9 Stunden
  • Links
    vor 1 Woche 1 Tag
  • Moin,wow, sehr gutes
    vor 1 Woche 3 Tagen
  • Dass ist eine spannende
    vor 1 Woche 3 Tagen

Statistik

Beiträge im Forum: 250314
Registrierte User: 20559

Neue User:

  • Cruzorerm
  • Plandkeews
  • Tepkugem

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 7 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