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

Formular zum Bearbeiten von Daten aus Datenbank

Eingetragen von jonasnrw (2)
am 08.03.2010 - 00:46 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

Hallo
ich fange gerade an mich mit Drupal auseinander zu setzen.
Ich möchte einf Formular erstellen das einen Namen und Email abfragt und diese nach absenden des Formulars per Mail verschickt und in eine Datenbank speichert. Das habe ich soweit auch hinbekommen. Ich möchte für diese Daten jetzt für eine Bearbeiten-Funktion erstellen.
Leider ist mir noch nicht ganz klar wie da vorgehen muss, weil diese ja auch nur im adminbereich zu sehen seien soll.

Anbei mal mein Code:

<?php

function testmodul_help($path, $arg) {
  $output = '';
  switch ($path) {
    case "admin/help#testmodul":
      $output = '<p>'.  t("Displays links to nodes created on this date") .'</p>';
      break;
  }
  return $output;
}

function testmodul_perm() {
  return array('access testmodul content');
}

function testmodul_form($form_state) {
   $form['name'] = array(
    '#type' => 'textfield',
    '#title' => t('Name'),
    '#size' => 30,
    '#maxlength' => 64,
    '#description' => t('Name'),
  );
  $form['email'] = array(
    '#type' => 'textfield',
    '#title' => t('email'),
    '#size' => 30,
    '#maxlength' => 64,
    '#description' => t('E-Mail'),
  );
  $form['submit'] = array('#type' => 'submit', '#value' => t('Abschicken'));
  $form_state['rebuild'] = TRUE;
  return $form;
}


function testmodul_page() {
  return drupal_get_form('testmodul_form');
}

function testmodul_form_validate($form, &$form_state) {
if ($form_state['values']['name'] == '') {
form_set_error('Text1', t('Bitte einen Namen eingeben'));
  }
if ($form_state['values']['email'] == '') {
form_set_error('Text2', t('Bitte eine E-Mail eingeben'));
  }
}

function testmodul_form_submit($form, &$form_state) {
$temp_name=$form_state['values']['name'];
$temp_email=$form_state['values']['email'];
$temp_ip=$_SERVER['REMOTE_ADDR'];

sendMail($temp_name,$temp_email);
db_query("INSERT INTO {data_test} (id , name , email , ip ) VALUES (NULL , '$temp_name', '$temp_email', '$temp_ip')");

drupal_set_message(t('Die Daten wurden gespeichert!'));
}


function sendMail($form_name,$form_email) {
$mail_ip=$_SERVER['REMOTE_ADDR'];
$message = array(
  'to' => $form_email,
  'subject' => t('Drupal E-Mail'),
  'body' => 'Hallo '.$form_name.', das ist die Drupal Mail von '.$mail_ip,
  'headers' => array('From' => 'mailadresse'),
);

drupal_mail_send($message);
   
  }


function testmodul_block($op='list', $delta=0) {
switch ($op) {
case 'list':
$blocks[0]['info'] = t('testmodul');
return $blocks;

case 'view':
$blocks['subject'] = t('testmodul');
$blocks['content'] = testmodul_page();
return $blocks;
}
}

Viele Grüße
Jonas

‹ [gelöst] Bug / Fehler bei Gallery Assist Nodereference gelöscht - referenzierender node kann nicht mehr gespeichert werden ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

modul

Eingetragen von caw (2762)
am 08.03.2010 - 09:41 Uhr

webform. macht genau das was du brauchst

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo vielen Dank für

Eingetragen von jonasnrw (2)
am 08.03.2010 - 14:21 Uhr

Hallo
vielen Dank für Antwort. Mit Webform habe ich das schon umgesetzt bekommen. Aber ich möchte das auch ohne ein Modul hinbekommen, um etwas mehr programmierpraxis zu bekommen. Habe mir auch schon die Dateien von Webform angeschaut, aber leider blicke ich da nicht ganz durch, weil das doch sehr umfangreich ist....

Viele Grüße

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, habe mir mal die Mühe

Eingetragen von Sense (1560)
am 25.03.2010 - 16:49 Uhr

Hi,

habe mir mal die Mühe gemacht Deinen gesamten Code zu überarbeiten.

<?php

/**
* Implementation of hook_block().
*/
function testmodul_block($op = 'list', $delta = 0, $edit = array()) {
  if (
$op == 'list') {
   
$blocks[0]['info'] = t('Testmodul');
    return
$blocks;

  } else if (
$op == 'view') {
    switch(
$delta) {
      case
0:
       
$block['subject'] = t('Testmodul');
       
$block['content'] = testmodul_page();
        break;
    }

    return
$block;
  }
}

/**
*
*/
function testmodul_page() {
  return
drupal_get_form('testmodul_form');
}

/**
* Implementation of hook_help().
*/
function testmodul_help($path, $arg) {
 
$output = '';
  switch (
$path) {
    case
"admin/help#testmodul":
     
$output = '<p>' . t('Displays links to nodes created on this date') . '</p>';
      break;
  }
  return
$output;
}

/**
* Implementation of hook_perm().
*/
function testmodul_perm() {
  return array(
   
'access testmodul content',
  );
}

/**
*
*/
function testmodul_form($form_state) {
 
$form = array();

 
$form['name'] = array(
   
'#type' => 'textfield',
   
'#title' => t('Name'),
   
'#size' => 30,
   
'#maxlength' => 64,
   
'#description' => t('Name'),
   
'#required' => true,
  );

 
$form['email'] = array(
   
'#type' => 'textfield',
   
'#title' => t('email'),
   
'#size' => 30,
   
'#maxlength' => 64,
   
'#description' => t('E-Mail'),
   
'#required' => true,
  );

 
$form['submit'] = array(
   
'#type' => 'submit',
   
'#value' => t('Send'),
  );
 
  return
$form;
}

/**
*
*/
function testmodul_form_submit($form, &$form_state) {
 
// Insert data into db
 
$sql = "INSERT INTO {data_test} (name, email, ip) VALUES ('%s', '%s', '%s')";
 
db_query($sql, $form_state['values']['name'], $form_state['values']['email'], $_SERVER['REMOTE_ADDR']);

 
// Send mail
 
$language = $GLOBALS['language']->language;
 
drupal_mail('testmodul', '', $form_state['values']['email'], $language, $form_state['values']);
 
drupal_set_message(t('Die Daten wurden gespeichert!'));
}

/**
* Implementation of hook_mail().
*/
function testmodul_mail($key, &$message, $params) {
 
$site_name = variable_get('site_name', '');
 
$site_mail = variable_get('site_mail', '');
 
$message['from'] = '"'. mime_header_encode($site_name) .'" <'. $site_mail .'>';
 
$message['headers']['From'] = '"'. mime_header_encode($site_name) .'" <'. $site_mail .'>';

 
$message['subject'] = t('Drupal E-Mail');
 
$message['body'] = drupal_html_to_text('Hallo ' . $params['name'] . ', das ist die Drupal Mail von ' . $_SERVER['REMOTE_ADDR']);
}

?>

  • 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

  • Danke ich werde mir die
    vor 5 Wochen 2 Tagen
  • Vielen Dank für Ihren
    vor 5 Wochen 5 Tagen
  • Composer ist sehr ratsam
    vor 6 Wochen 2 Stunden
  • Vielen Dank für den
    vor 6 Wochen 2 Tagen
  • Die alten CMS Vergleiche von contentmanager.de
    vor 6 Wochen 3 Tagen
  • Gut gemacht
    vor 6 Wochen 3 Tagen
  • Layout Builder etc. z.B. für Landing Pages
    vor 6 Wochen 3 Tagen
  • Links
    vor 6 Wochen 5 Tagen
  • Moin,wow, sehr gutes
    vor 6 Wochen 6 Tagen
  • Dass ist eine spannende
    vor 6 Wochen 6 Tagen

Statistik

Beiträge im Forum: 250316
Registrierte User: 20567

Neue User:

  • Philiphelve
  • Robertspaft
  • drupalthemes

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