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 07.03.2010 - 23: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 - 08: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 - 13: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 (1559)
am 25.03.2010 - 15: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

  • 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 2 Wochen 16 Stunden
  • Hey danke
    vor 2 Wochen 1 Tag
  • Update: jetzt gibt's ein
    vor 2 Wochen 2 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 6 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 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 4 Tagen
  • gelöst
    vor 6 Wochen 13 Stunden
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 1 Tag

Statistik

Beiträge im Forum: 250233
Registrierte User: 20452

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