[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Frontend Selectbox - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
ManuelSeipel
Beiträge: 78
Registriert: 6. Jul 2012, 16:19
Wohnort: Wächtersbach

Frontend Selectbox

22. Feb 2014, 16:34

Hallo alle zusammen,

finde bei nachstehendem Modul (Frontendausgabe) den Fehler nicht:

Code: Alles auswählen

<select name="VALUE[2]" >
<?php
foreach (array("Feldatal","Moorgrund","Laubus-Eschbach","Mernes","Beuern","Bruchstedt","Aarbergen","Kaltenholzhausen","Aufenau") as $value) {
	echo '<option value="'.$value.'" ';
	echo '>'.$value.'</option>';
}
?>
</select>
<!--
<select name="REX_VALUE[1]">
	<option value='Feldatal'>Feldatal</option>
	<option value='Moorgrund'>Moorgrund</option>
	<option value='Laubus-Eschbach'>Laubus-Eschbach</option>
	<option value='Mernes'>Mernes</option>
	<option value='Beuern'>Beuern</option>
	<option value='Bruchstedt'>Bruchstedt</option>
	<option value='Aarbergen'>Aarbergen</option>
	<option value='Kaltenholzhausen'>Kaltenholzhausen</option>
	<option value='Aufenau'>Aufenau</option>
</select>
-->


<?php
$class = "REX_VALUE[2]";

$sql = rex_sql::factory(); 
$sql->setTable($REX['TABLE_PREFIX'].'veranstalter'); 
$sql->setWhere('online=1 and ort ='.intval($class).' order by veranstaltungsnummer ASC'); 

$sql->select('ort, ansprechpartner, strasse, plz, club, veranstaltungsdatum');

echo '<table>';
echo '<tr><td colspan="2">'.$sql->getValue('club').'</td></tr>';
echo '<tr><td colspan="2">'.$sql->getValue('ansprechpartner').'</td></tr>';
echo '<tr><td colspan="2">'.$sql->getValue('strasse').'</td></tr>';
echo '<tr><td>'.$sql->getValue('plz').'</td><td>'.$sql->getValue('ort').'</td></tr>';
echo '</table>';
?>
Ziel ist das die Adresse sich gemäß dem Auswahlfeld ändert.

Eine Ausgabe bekomme ich zur Zeit mit dem ersten Listeneintrag hin (Feldatal = ID3 in der Tabelle).
Dieser ist allerdings nicht der erste Eintrag in der abzufragenden Tabelle.
ID1 in der Tabelle erfüllt die gleichen Bedingungen.

Vielen Dank vorab

Gruß Manuel

Benutzeravatar
webghost
Beiträge: 266
Registriert: 6. Okt 2010, 20:10
Kontaktdaten: Website

Re: Frontend Selectbox

23. Feb 2014, 20:30

als erstes fällt mir intval($class) auf - der Wert dieser Variable entspricht doch einem Element des Arrays oben, richtig? dann wird daraus aber keine Zahl

Wenn das alles in der Modulausgabe steht, wenn ich Dich richtig verstehe, dann macht das mit REX_VALUE so keinen Sinn. Du rufst ja direkt in Deiner Datenbanktabelle ab und brauchst nichts aus dem Formular in einen Slice zu speichern. Oder verstehe ich Dich falsch?

ManuelSeipel
Beiträge: 78
Registriert: 6. Jul 2012, 16:19
Wohnort: Wächtersbach

Re: Frontend Selectbox

24. Feb 2014, 19:44

Hi,

ich denke schon das du das richtig verstanden hast.

Habe das ganze schonmal ein wenig reduziert, was ich im nachhinein schon für Unsinn gehalten habe auf:

Code: Alles auswählen

<strong>für welche Veranstaltung möchtest du nennen</strong>:<br />

<select name="VALUE[2]" >
<?php
foreach (array("Feldatal","Moorgrund","Laubus-Eschbach","Mernes","Beuern","Bruchstedt","Aarbergen","Kaltenholzhausen","Aufenau") as $value) {
	echo '<option value="'.$value.'" ';
	echo '>'.$value.'</option>';
}
?>
</select>
<!--
<select name="REX_VALUE[1]">
	<option value='Feldatal'>Feldatal</option>
	<option value='Moorgrund'>Moorgrund</option>
	<option value='Laubus-Eschbach'>Laubus-Eschbach</option>
	<option value='Mernes'>Mernes</option>
	<option value='Beuern'>Beuern</option>
	<option value='Bruchstedt'>Bruchstedt</option>
	<option value='Aarbergen'>Aarbergen</option>
	<option value='Kaltenholzhausen'>Kaltenholzhausen</option>
	<option value='Aufenau'>Aufenau</option>
</select>
-->

<?php

$sql = rex_sql::factory(); 
$sql->setTable($REX['TABLE_PREFIX'].'veranstalter'); 
$sql->setWhere('veranstaltungsnummer = ."REX_VALUE[2]".'); 

$sql->select('ort, ansprechpartner, strasse, plz, club, veranstaltungstietel, veranstaltungsdatum');

echo '<table>';
echo '<tr><td colspan="2">'.$sql->getValue('club').'</td></tr>';
echo '<tr><td colspan="2">'.$sql->getValue('ansprechpartner').'</td></tr>';
echo '<tr><td colspan="2">'.$sql->getValue('strasse').'</td></tr>';
echo '<tr><td>'.$sql->getValue('plz').'</td><td>'.$sql->getValue('ort').'</td></tr>';
echo '</table>';

echo '<table>';
echo '<tr><td><strong><h3>Nennung zum:<br>'.$sql->getValue('veranstaltungstietel').' in '.$sql->getValue('ort').'<br>am: '.$sql->getValue('veranstaltungsdatum').'2014</h3></strong></td></tr>';
echo '</table>';
?>
Letzten endes soll ein Adressblock augegeben werden welchen der User selbst auswählen soll.

Gruß Manuel

Benutzeravatar
webghost
Beiträge: 266
Registriert: 6. Okt 2010, 20:10
Kontaktdaten: Website

Re: Frontend Selectbox

24. Feb 2014, 21:37

Machst Du in der Moduleingabe noch Einstellungen, oder wozu genau sind die VALUE[] da? Willst Du die Veranstaltungsorte wirklich fest in das Modul schreiben? denke entweder aus der DB holen oder in der Moduleingabe eingeben wäre komfortabler, ausser die ändern sich nie.

Die SQL abfrage kann so aber nicht funktionieren. Du hast in den Optionen immer einen Namen und mit der Where Bedingung suchst Du dann nach einer "veranstaltungsnummer". Also entweder in der Spalte mit den Namen suchen oder im Formular die zahlen hinterlegen.

ManuelSeipel
Beiträge: 78
Registriert: 6. Jul 2012, 16:19
Wohnort: Wächtersbach

Re: Frontend Selectbox

25. Feb 2014, 21:10

Grundlegend hast du recht, ist sicher einfacher die Orte in der Eingabe zu setzten.

Die Veranstaltungen ändern sich Jährlich und sind mittlerweile in einer DB vorhanden.
Diese aus der DB zu lesen ist mit Sicherheit noch vernünftiger.

Eingaben brauche ich sonst keine zu machen. Die einzige Eingabe die gemacht werden muss, führt der User um Frontend in form von Auswahl der Adresse aus.
Sorry, hatte die letzte Antwort nochmal überarbeitet gehabt und nur nen teil aktualisiert.

Code: Alles auswählen

<select name="VALUE[2]" >
<?php
foreach (array("Feldatal","Moorgrund","Laubus-Eschbach","Mernes","Beuern","Bruchstedt","Aarbergen","Kaltenholzhausen","Aufenau") as $value) {
   echo '<option value="'.$value.'" ';
   echo '>'.$value.'</option>';
}
?>
</select>
<!--
<select name="REX_VALUE[1]">
	<option value='01'>Feldatal</option>
	<option value='02'>Moorgrund</option>
	<option value='03'>Laubus-Eschbach</option>
	<option value='04'>Mernes</option>
	<option value='05'>Beuern</option>
	<option value='06'>Bruchstedt</option>
	<option value='07'>Aarbergen</option>
	<option value='08'>Kaltenholzhausen</option>
	<option value='09'>Aufenau</option>
</select>
-->
In Excel hätte ich das in 5 Minuten fertig... :)
Für jetzt mags das so erstmal tun....

Im Value[2] müsste doch jetzt wenn ich "Feldatal" auswähle "01" stehen oder?

Sollte das stimmen, müste letztendlich das Value[2] in der Zeile
$sql->setWhere('veranstaltungsnummer ='."REX_VALUE[2]");

falsch eingebunden sein. Bin jetzt ne stunde durch WIKI gestolpert aber nicht fündig geworden...

Benutzeravatar
webghost
Beiträge: 266
Registriert: 6. Okt 2010, 20:10
Kontaktdaten: Website

Re: Frontend Selectbox

25. Feb 2014, 22:10

Du hast da was grundlegendes falsch verstanden. VALUE[] ist ein Feld in der Datenbanktabelle rex_article_slice. Damit speicherst Du Eingaben die im Backend in der Moduleingabe gemacht werden. Du willst aber dass der User etwas im Frontend machen kann. Dazu brauchst Du lediglich ein HTML Formular und die nötige Verarbeitung in PHP oder JS. Da du Werte aus Deiner Datenbanktabelle holen willst kannst Du rex_sql nutzen. Es ginge aber auch ohne, denn das ganze hat mit Redaxo nichts zu tun.

Ersetze mal VALUE[2] mit einem Namen zB. "veranstaltung". Wenn jetzt im Formular "Feldatal" ausgewählt wird, so wird nach absenden des Formulars entweder per GET oder POST, der Schlüssel "veranstaltung" mit dem Wert 01 übermittelt.

Also wenn gesendet wurde hast Du nachher entweder
$_GET['veranstaltung'] = 01
oder
$_POST['veranstaltung'] = 01
aber immer
$_REQUEST['veranstaltung'] = 01

Jetzt kannst Du die Deine Datenbanktabelle nach dem übermittelten Wert abfragen. Am elegantesten würde man sowas natürlich per ajax lösen um einen Reload der Seite zu vermeiden, aber das kannst Du später immernoch machen.

ManuelSeipel
Beiträge: 78
Registriert: 6. Jul 2012, 16:19
Wohnort: Wächtersbach

Re: Frontend Selectbox

25. Feb 2014, 22:22

AAAhhh, ok... dann mach ich mich da mal schlau....

Danke dir.

Gruß Manuel

Zurück zu „Allgemeines [R4]“