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

Form weiterleitung

Eingetragen von crackAT (17)
am 28.03.2015 - 19: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 (1559)
am 29.03.2015 - 15: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 - 15: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 (1559)
am 29.03.2015 - 15: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 - 16: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 (1559)
am 29.03.2015 - 16: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 (1559)
am 29.03.2015 - 17: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 - 17: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 (1559)
am 29.03.2015 - 17:45 Uhr

Habs im Post angepasst

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 6 Tagen
  • Hey danke
    vor 2 Wochen 17 Stunden
  • Update: jetzt gibt's ein
    vor 2 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 6 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 3 Tagen
  • In der entsprechenden View
    vor 3 Wochen 3 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 3 Tagen
  • gelöst
    vor 5 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 17 Stunden

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

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