Startseite
  • » Home
  • » Handbuch & FAQ
  • » Showroom
  • » Forum
  • » Drupalchannel
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

formular faten empfangen und verarbeiten?

Eingetragen von pelack (6)
am 13.06.2006 - 23:58 Uhr in
  • Allgemeines zu Drupal

hi drupal forum,

ich versuch mich grade ein wenig in Drupal bzw. in die drupal Form API rein zu arbeiten. leider schaff ich es nich die abgesendeten Daten zu verarbeiten oder auszugeben. Hier mein Code

<?php
 
  $form
['ort'] = array(
   
'#type' => 'textfield',
   
'#title' => t('Ort'),
   
'#size' => 20,
   
'#maxlength' => 50,
   
'#description' => t('Bitte gebe einen Ort ein!'),
  );
 
 
$form['submit'] = array('#type' => 'submit', '#value' => t('Senden'));
 
 
$output = drupal_get_form('testform', $form);

  print
$output;
 
  print
"<p>Ort: " . $form_values['ort']."<br/>";
?>

Das $form_values['ort'] wird einfach nicht ausgeben. Irgendwie steh ich voll aufm schlauch und weiß einfach nicht was ich falsch mache. Ich mache bestimmt irgendwas falsch! Hat jemand vieleicht einen Tipp für mich?

Danke, Peter

‹ google mag meine seite nicht Java Applet ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Irgendwo wird Dein Formular

Eingetragen von quiptime (4697)
am 14.06.2006 - 08:24 Uhr

Irgendwo wird Dein Formular auf einer Webseite sein und Du kannst dort den Submit klicken. Hast Du Dir mal den HTML-Code, den Dein Drupalformular ausgibt, angesehen?

Poste diesen HTML-Code doch einfach mal.

-------------
quiptime

Quiptime Group

  • Anmelden oder Registrieren um Kommentare zu schreiben

hallo quiptime, danke für

Eingetragen von pelack (6)
am 14.06.2006 - 08:54 Uhr

hallo quiptime, danke für deine antwort.

hier der html code :

<form action="/drupal47/?q=node/5"  method="post" id="testform">
<div><div class="form-item">
<label for="edit-ort">Ort:</label>

<input type="text" maxlength="50" name="edit[ort]" id="edit-ort"  size="20" value="" class="form-text" />
<div class="description">Bitte gebe einen Ort ein!</div>
</div>
<input type="submit" name="op" value="Senden"  class="form-submit" />
<input type="hidden" name="edit[form_id]" id="edit-form_id" value="testform"  />

</div></form>

für mich sieht alles korekt aus, aber vieleicht seh ich auch den Wald vor lauter bäumen nicht.

hab auch schon print $_post['edit']['ort']; ausprobiert ohne erfolg. ich kann die eingebenen Formulardaten einfach nicht ausgeben oder verarbeteiten.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Aus meiner Sicht ist der

Eingetragen von quiptime (4697)
am 14.06.2006 - 09:52 Uhr

Aus meiner Sicht ist der HTML-Code in Ordnung. Das Formular kann senden.

Was aber die Variable $_post['edit']['ort'] betrifft.

Erstens:

Richtig ist $_POST['edit']['ort']

$_POST ist eine globale PHP-Variable und muss mit großen Buchstaben geschrieben werden.

Zweitens:

Wenn schon, dann ['edit']['ort'] und nicht nur ['edit']. Denn nur ['edit'] sollte Dir nicht den Inhalt des Feldes liefern sondern die Info, daß es ein Array ist.

-------------
quiptime

Quiptime Group

  • Anmelden oder Registrieren um Kommentare zu schreiben

Senden von Formulardaten

Eingetragen von md (3762)
am 14.06.2006 - 10:29 Uhr

Die Formulardaten schickst du am besten mit der Funktion:

<?php
function NAMEDEINESMODULS_form_submit($form_id, $form_values) {

//Beispiel schreibt die Daten in eine Tabelle 
 
db_query("INSERT INTO {callback} (firma, title) VALUES ('%s', '%s')",
$form_values['firma'], $form_values['telefon']);

//Zeige eine 'Danke Seite an' 
 
drupal_goto('Danke');
}
?>

Meinolf
-------
http://drupal.mdwp.de

vg
md - DrupalCenter.de

mdwp*

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen dank für eure

Eingetragen von pelack (6)
am 14.06.2006 - 14:04 Uhr

Vielen dank für eure antworten.

@qiuptime

Leide liefert $_POST['edit']['ort']; kein ergebniss. hast du noch eine andere Idee?

@Meinolf

d.h. das $form_values['firma'] bzw. in meinem Fall $form_values['ort'] einen Wert enhalten müsste, tut es aber nicht (s.o.). liegt es vieleicht daran das ich kein modul entwickle, sondern das formular in eine seite mit php-filter aufrufe?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Modul

Eingetragen von md (3762)
am 14.06.2006 - 14:28 Uhr

Die Form-API ist in erster Linie für die Modulentwicklung gedacht.
Und mein Beispiel-Code auch.
Ich würd auch Formulare nicht über gespasteten PHP-Code entwickeln.
Die Vorgehensweise eignet sich eher für PHP-Snippets in Blöcken.

Meinolf
-------
http://drupal.mdwp.de

vg
md - DrupalCenter.de

mdwp*

  • Anmelden oder Registrieren um Kommentare zu schreiben

naja, noch 'ne Idee?

Eingetragen von quiptime (4697)
am 14.06.2006 - 15:24 Uhr

naja, noch 'ne Idee?

Laut Deines HTML-Formularcode sendet das Formular seine Daten an "/drupal47/?q=node/5".
Wer oder was ist der Empfänger der Formulardaten? $_POST ist zwar global - aber wo willst Du den Inhalt von $_POST['edit']['ort'] verarbeiten?

Noch 'ne Idee.
Manchmal sieht man ja den Wald vor lauter Bäumen nicht.
Gib mal den Codesnipped mit dem Du den Inhalt von $_POST['edit']['ort'] ermitteln willst.

Noch 'ne Idee.
Teste doch mal außerhalb von Drupal, ob auf dem Server $_POST zur Verfügung steht bzw. in einem Formular funktioniert. Eventuell ist es kein Drupalproblem. Was ich aber auch nicht glaube, denn im Drupalcode wird $_POST in vielen Modulen verwendet. Falls es ein generelles Problem mit der Variable $_POST gibt würde ja nichts bei Deiner Drupalsite funktionieren.

PS:
Habe mir eben auf drupal.org diversen Examplecode angesehen. An beliebiger Stelle in irgendwelchen Funktionen wird da $_POST['edit']['mein_name'] verwendet. Sollte also funktionieren.

-------------
quiptime

Quiptime Group

  • Anmelden oder Registrieren um Kommentare zu schreiben

Re: naja, noch 'ne Idee?

Eingetragen von pelack (6)
am 14.06.2006 - 15:50 Uhr
quiptime schrieb

naja, noch 'ne Idee?

Laut Deines HTML-Formularcode sendet das Formular seine Daten an "/drupal47/?q=node/5".
Wer oder was ist der Empfänger der Formulardaten?

Das formular ruft sich selber wieder auf.

quiptime schrieb

$_POST ist zwar global - aber wo willst Du den Inhalt von $_POST['edit']['ort'] verarbeiten?

eigentlich soll es eine Zahl sein und soll etwas berechnet werden. Aber zuerstmal benotige ich testweise die eingebene variable.

quiptime schrieb

Noch 'ne Idee.
Manchmal sieht man ja den Wald vor lauter Bäumen nicht.
Gib mal den Codesnipped mit dem Du den Inhalt von $_POST['edit']['ort'] ermitteln willst.

hier der derzeitge code:

<?php
  $form
['ort'] = array(
   
'#type' => 'textfield',
   
'#title' => t('Ort'),
   
'#size' => 20,
   
'#maxlength' => 50,
   
'#description' => t('Bitte gebe einen Ort ein!'),
  );
 
$form['submit'] = array('#type' => 'submit', '#value' => t('Senden'));
 
$output = drupal_get_form('testform', $form);
  print
$output;
  print
"<p>Ort: " . $form_values['ort']."<br/>";
print
"<p>Ort: " . $_POST['edit']['ort']."<br/>";
?>

weder $form_values noch $POST['edit']['ort'] gibt was aus. Ich bin mit meinem latein am ende - evtl. hast du mal lust den code bei dir zu testen?

quiptime schrieb

Noch 'ne Idee.
Teste doch mal außerhalb von Drupal, ob auf dem Server $_POST zur Verfügung steht bzw. in einem Formular funktioniert. Eventuell ist es kein Drupalproblem. Was ich aber auch nicht glaube, denn im Drupalcode wird $_POST in vielen Modulen verwendet. Falls es ein generelles Problem mit der Variable $_POST gibt würde ja nichts bei Deiner Drupalsite funktionieren.

alles funktioniert bestens - sowohl drupal als auch eigene skripte.

quiptime schrieb

PS:
Habe mir eben auf drupal.org diversen Examplecode angesehen. An beliebiger Stelle in irgendwelchen Funktionen wird da $_POST['edit']['mein_name'] verwendet. Sollte also funktionieren.

ich habe so ziemlich alle code beispiele auf drupal.org durchgetestet, komme aber nicht zum richitgen Ergebniss.

Danke für eure hilfe!

  • Anmelden oder Registrieren um Kommentare zu schreiben

@pelak, vor ein paar Tage

Eingetragen von quiptime (4697)
am 14.06.2006 - 16:50 Uhr

@pelak,

vor ein paar Tagen hatte ich beim Testen das gleiche Problem. Ich konnte die Formdaten $_POST['edit']['irgendwas'] nach dem Submit nicht ausgeben.

Da ich für mich das Problem noch nicht klären konnte geht es mir so wie Dir. Es gibt jetzt mehrere Möglichkeiten. Aufgeben, warten auf das ein Wissender diesen Thread liest und sich erbarmt die Lösung zu posten oder es selbst herausbekommen.

Aufgeben kommt für mich nicht in Frage. Warten - naja mal sehen eventuell passiert es ja. Selbst herausbekommen bringt den größten Wissensschub.

Ich weiß nicht wie wichtig Dir dieses Problem ist, wir können hier mit der Problemlösung weitermachen. Hast Du Interesse?

Habe da noch eine Überlegung. Die geht in eine ganz andere Richtung. Und eventuell lacht sich ja bei den folgenden Posts zur Lösung des Problems mit Formdaten $_POST['edit']['irgendwas'] ausgeben ein mitlesender Wissender vor seinem Bildschirm kaputt.

Also @pelak, es ist Dein Thread. Wollen wir weitermachen bis zur Lösung?

-------------
quiptime

Quiptime Group

  • Anmelden oder Registrieren um Kommentare zu schreiben

Re: @pelak,

Eingetragen von pelack (6)
am 14.06.2006 - 17:15 Uhr
quiptime schrieb

@pelak,

vor ein paar Tagen hatte ich beim Testen das gleiche Problem. Ich konnte die Formdaten $_POST['edit']['irgendwas'] nach dem Submit nicht ausgeben.

Da ich für mich das Problem noch nicht klären konnte geht es mir so wie Dir. Es gibt jetzt mehrere Möglichkeiten. Aufgeben, warten auf das ein Wissender diesen Thread liest und sich erbarmt die Lösung zu posten oder es selbst herausbekommen.

es gibt noch eine weitere möchglichkeit: und zwar nach einer alternativ lösung zu suchen. ich habe jetzt das formular innerhalb eines nodes als normales html-formular gebaut und es funktioniert alles bestens.

trotzdem interessiert mich eine lösung auf basis der drupal form-api brennend. ich würde sehr gerne wissen, wo mein/unser denkfehler ist.

darum: hast du (oder jemand anderes) noch ideen dazu?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Kurz noch zu meinem

Eingetragen von quiptime (4697)
am 14.06.2006 - 17:25 Uhr

Kurz noch zu meinem erfolglosen Test. Mein Formular befand sich nicht in einem node.

Nun zu meiner Idee.

Kann es sein, daß wenn ein Formular irgendwo platziert wird, Drupal als Sicherheitsfunktion die Daten dieses Formulares nicht verfügbar macht bzw. man nicht ohne Weiteres die Formulardaten verarbeiten kann. Wenn ich nun diesem Gedanken folge müßte man sein irgendwo platziertes Formular sozusagen "bei Drupal registrieren", um berechtigt mit den Formulardaten arbeiten zu können.

-------------
quiptime

Quiptime Group

  • Anmelden oder Registrieren um Kommentare zu schreiben

Warum nicht als Modul

Eingetragen von md (3762)
am 14.06.2006 - 23:29 Uhr

Ich will ja nicht nerven, aber warum wollt ihr das nicht als Modul umsetzen?
Das ist doch die normale Vorgehensweise.

Meinolf
-------
http://drupal.mdwp.de

vg
md - DrupalCenter.de

mdwp*

  • Anmelden oder Registrieren um Kommentare zu schreiben

Re: Warum nicht als Modul

Eingetragen von pelack (6)
am 14.06.2006 - 23:47 Uhr
Meinolf schrieb

Ich will ja nicht nerven, aber warum wollt ihr das nicht als Modul umsetzen?
Das ist doch die normale Vorgehensweise.

wahrscheinlich hast du recht.

eigenltich möchte ich nur ein formular mit zwei feldern erstellen, dessen werte mitienander multipliziert werden - mehr nicht. ich dachte das könnte man einfach per PHP und der form-api in einem node regeln.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja - und schau dir das mal an

Eingetragen von md (3762)
am 15.06.2006 - 01:03 Uhr

http://drupal.org/node/68159

Meinolf
-------
http://drupal.mdwp.de

vg
md - DrupalCenter.de

mdwp*

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Download privater Dateien für authentifizierte Benutzer
  • Kleiner Fussballverein (500 Mitglieder) sucht Webside Ersteller für Vereinshomepage
  • [gelöst] Kommentar in andere Region - Block
  • Verständnisfrage zur mehrsprachigen Benutzeroberfläche
  • neue PHP-Version - massive Fehler
  • Benutzer Downloads
  • [gelöst] Inhaltstyp mit Seitenumbruch
  • Unterschiedliche Registrierungsverfahren für verschiedene Benutzergruppen
  • Rate Modul um einen "submit" Button erweitern
  • Event zu externe Server senden wenn neuer Nutzer registriert
  • Download Seite erstellen mit Taxonomy/Panels/Views
  • CKEditor: Schriftfarbe wählen. Kann man eine neue Farbe in die Auswahlpalette einfügen?
Weiter

Neue Kommentare

  • Ich habe das bisher nur unter
    vor 10 Minuten 35 Sekunden
  • Bitte Lösung kurz skizzieren
    vor 28 Minuten 44 Sekunden
  • Ich habe nun einfach mal auf
    vor 39 Minuten 59 Sekunden
  • Ja, da habe ich mich vertan,
    vor 1 Stunde 27 Minuten
  • Rules ist dein Freund
    vor 1 Stunde 33 Minuten
  • Ionit schrieb Wie würdet ihr
    vor 1 Stunde 44 Minuten
  • Hallo Werner, danke für
    vor 1 Stunde 54 Minuten
  • wla schriebEs gibt da das
    vor 58 Minuten 16 Sekunden
  • Es gibt da das Modul
    vor 2 Stunden 5 Minuten
  • Ja, das ist möglich, aber
    vor 2 Stunden 52 Minuten

Statistik

Beiträge im Forum: 180161
Registrierte User: 16109

Neue User:

  • Friedrich64
  • Habari
  • mquadrat

» Alle User anzeigen

User nach Punkten sortiert:
stBorchert5573
quiptime4697
wla4301
Tobias Bähr3889
md3762
bv3696
Thoor3678
Alexander Langer3365
Exterior2773
dereine2637
» User nach Punkten
Zur Zeit sind 8 User und 53 Gäste online.

Benutzer online

  • Julsen
  • Ionit
  • Wurzelzwerg
  • wla
  • Habari
  • maria-rita
  • Friedrich64
  • torfnase

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Showroom
  • » Forum
  • » Drupalchannel
  • » Ü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
  • Bücherecke

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed Drupal Podcast
  • 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