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

[gelöst] $form_values leer

Eingetragen von andre8 (14)
am 05.07.2011 - 18:02 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

hallo zusammen!

ich stehe auf dem schlauch.
seit 3 h versuche ich daten aus nem formular in die datenbank zu speicher.
print r() gibt die werte fein säuberlich aus.
datum geht aber die form_values nicht.

kann mir bitte jemand sagen wo mein fehler ist.

danke

hier der code:

<?php


/*
* Hilfefunktion bauen
*/
function sport_help($section) {
  switch (
$section) {
    case
'admin/modules#description':
      return
t('This module implements an example form.');
  }
}



/**
* Implementation of hook_init(). Add's the sport module's CSS.
*/
function sport_init() {
 
drupal_add_css(drupal_get_path('module', 'sport') .'/sport.css');
}



/**
* Berechtigungen.
*/
function sport_perm() {
  return array(
'access sport content', 'administer sport');
}




/*
* Link bauen
*/
function sport_menu() {
 
$items = array();

 
$items['sport'] = array(
 
     
// Vergleichbar mit <a href="#">title</a>
     
'title' => 'Anmeldeformular',
     
// Vergleichbar mit <a href="#" alt=""></a>
     
'description' => 'A menu entry that shows how hook_menu() works.',
   
// Ruft die Funktion: function get_user_login_form auf
     
'page callback' => 'get_sport_form',
     
'access callback' => 'user_access',
     
'access arguments' => array('access sport content'),
     
'type' => MENU_CALLBACK
 
);

  return
$items;
}



/*
* Callback function for 'get_form'
*/
function get_sport_form() {
   
$output  = "<h2>";
   
$output .= t('Registration for the run');
   
$output .= "</h2>";
     
$output .= drupal_get_form('sport_page_form');
      return
$output;
}



/*
* Event aus e_event
*/
function ev_entries() {
 
$ev_entries = array();
 
$query="SELECT event,eid FROM e_event WHERE estatus='0'";
 
$result = db_query ($query);
 
$ev_entries[''] = 'Auswahl';
  while (
$row = mysql_fetch_array($result)) {
   
$ev_entries[$row[eid]] = $row[event];
  }
  return
$ev_entries;
}



/*
* Jahrgangsdaten aus e_jahrgang
*/
function jg_entries() {
 
$jg_entries = array();
 
$query="SELECT jahrgang,jid FROM e_jahrgang";
 
$result = db_query ($query);
 
$jg_entries[''] = 'Auswahl';
  while (
$row = mysql_fetch_array($result)) {
   
$jg_entries[$row[jid]] = $row[jahrgang];
  }
  return
$jg_entries;
}



/*
* Formular
*/
function sport_page_form() {
   
$form['event'] = array (
     
'#type'             => 'select',
     
'#title'            => t('Select your Event'),
     
'#options'          => ev_entries(),
     
'#prefix' => '<div class="sport_event">',
   
'#suffix' => '</div>',
     
'#required' => TRUE,
  );
 
$form['lastname'] = array(
   
'#type' => 'textfield',
   
'#title' => t('Enter your fullname'),
   
'#prefix' => '<div class="sport_fullname">',
   
'#suffix' => '</div>',
   
'#required' => TRUE,
  );
 
$form['firstname'] = array(
   
'#type' => 'textfield',
   
'#title' => t('Enter your firstname'),
   
'#prefix' => '<div class="sport_firstname">',
   
'#suffix' => '</div>',
   
'#required' => TRUE,
  );
 
 
$form['jahrgang'] = array (
     
'#type'             => 'select',
     
'#title'            => t('Enter the year of your birthday'),
     
'#options'          => jg_entries(),
     
'#prefix' => '<div class="sport_jahrgang">',
   
'#suffix' => '</div>',
     
'#required' => TRUE,
  );
 
 
$form['verein'] = array(
   
'#type' => 'textfield',
   
'#title' => t('Enter your club'),
   
'#prefix' => '<div class="sport_verein">',
   
'#suffix' => '</div>',
  );
 
$form['verband'] = array(
   
'#type' => 'textfield',
   
'#title' => t('Enter your association'),
   
'#prefix' => '<div class="sport_verband">',
   
'#suffix' => '</div>',
  );
 
$options = array("Auswahl", "w", "m");
 
$form['geschlecht'] = array (
     
'#type'             => 'select',
     
'#title'            => t('Enter your male'),
     
'#options'          => $options,
     
'#prefix' => '<div class="sport_jahrgang">',
   
'#suffix' => '</div>',
     
'#required' => TRUE,
  );
 
$form['telefon'] = array(
   
'#type' => 'textfield',
   
'#title' => t('Enter your telefonnumber'),
   
'#prefix' => '<div class="sport_tel">',
   
'#suffix' => '</div>',
  );
 
$form['email'] = array(
   
'#type' => 'textfield',
   
'#title' => t('Enter your E-Mailaddress'),
   
'#prefix' => '<div class="sport_email">',
   
'#suffix' => '</div>',
  );
 
  
$form['submit'] = array(
   
'#type' => 'submit',
   
'#value' => t('Save'),
  );
return
$form;
}

function
sport_page_form_submit($form_id, $form_values) {
 
$message = 'You have submitted the ' . $form_id . ' form which contains the following data:<pre>' . print_r($form_values,true) . '</pre>';
 
drupal_set_message(t($message));
 
//$timestamp = time();
  //$datum = date("d.m.Y - H:i",$timestamp);
 
$sql = "INSERT INTO {e_anmeldung} (datum, name) VALUES('%d','%s')";
 
db_query($sql, time(), $form_values['lastname']);
}
?>

‹ Mehrer AJAX Buttons auf einer Formularseite hook_menu: Funktion ausführen, danach Seite neu laden ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Also ich habe keine Ahnung,

Eingetragen von Exterior (2903)
am 05.07.2011 - 20:40 Uhr

Also ich habe keine Ahnung, wo du diese Sachen her hast, aber das dürfte an diversen Stellen ziemlich falsch sein

  1. Der Teil 'You have submitted the ' . $form_id . ' form which [...] ist Unfug. Der erste Parameter der Submit-Funktion ist nicht $form_id, sondern $form. Ja, es ist egal, wie die Variable heißt, aber es steht eben nicht die Form-ID drin, sondern das gesamte Form-Array
  2. Der zweite Parameter ist $form_state, welcher nicht nur die Values sondern auch andere Infos enthält. Auf die Values greift man dann mittels $form_state['values']['FeldName'] zu. Dir fehlt als das ['values'] beim $form_state (bzw. in deinem Fall $form_values)
  3. Probier mal, deiner Form-Funktion den $form_state (bzw. bei dir $form_values) als Parameter mitzugeben

Wie gesagt, es ist egal, wie die Variablen heißen, die können gern $form_id und $form_values heißen. Aber drin stecken eben das Form-Array und der Form-State und nicht die ID und die Values.

Probier's mal so:

<?php
function sport_page_form($form_state) {
   
$form['event'] = array (
     
'#type'             => 'select',
     
'#title'            => t('Select your Event'),
     
'#options'          => ev_entries(),
     
'#prefix' => '<div class="sport_event">',
   
'#suffix' => '</div>',
     
'#required' => TRUE,
  );
 
$form['lastname'] = array(
   
'#type' => 'textfield',
   
'#title' => t('Enter your fullname'),
   
'#prefix' => '<div class="sport_fullname">',
   
'#suffix' => '</div>',
   
'#required' => TRUE,
  );
 
$form['firstname'] = array(
   
'#type' => 'textfield',
   
'#title' => t('Enter your firstname'),
   
'#prefix' => '<div class="sport_firstname">',
   
'#suffix' => '</div>',
   
'#required' => TRUE,
  );
 
 
/*
   Weitere Formular-Elemente
  */

 
$form['email'] = array(
   
'#type' => 'textfield',
   
'#title' => t('Enter your E-Mailaddress'),
   
'#prefix' => '<div class="sport_email">',
   
'#suffix' => '</div>',
  );
 
  
$form['submit'] = array(
   
'#type' => 'submit',
   
'#value' => t('Save'),
  );
return
$form;
}

function
sport_page_form_submit($form, &$form_state) {
 
$message = 'You have submitted the ' . $form['#id'] . ' form which contains the following data:<pre>' . print_r($form_state, 1) . '</pre>';
 
drupal_set_message(t($message));
 
//$timestamp = time();
  //$datum = date("d.m.Y - H:i",$timestamp);
 
$sql = "INSERT INTO {e_anmeldung} (datum, name) VALUES('%d','%s')";

 
// hier kommt der neue und interessante Teil
 
db_query($sql, time(), $form_state['values']['lastname']);
}
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

danke

Eingetragen von andre8 (14)
am 05.07.2011 - 22:24 Uhr

danke Exterior ,
das war es.

lg

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • 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?
Weiter

Neue Kommentare

  • Inzwischen sind wir bei
    vor 23 Stunden 4 Minuten
  • Migrieren von D7 auf D8/ D10/ D11
    vor 1 Tag 15 Stunden
  • melde mich mal wieder, da ich
    vor 7 Wochen 5 Tagen
  • Hey danke
    vor 7 Wochen 6 Tagen
  • Update: jetzt gibt's ein
    vor 8 Wochen 7 Stunden
  • Hallo, im Prinzip habe ich
    vor 8 Wochen 4 Tagen
  • Da scheint die Terminologie
    vor 8 Wochen 4 Tagen
  • Kannst doch auch alles direkt
    vor 9 Wochen 2 Tagen
  • In der entsprechenden View
    vor 9 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 9 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250235
Registrierte User: 20462

Neue User:

  • marouane.blel
  • capilclinic
  • Quabzibboter

» 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 15 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