php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 06-06-2007, 21:20
krel
 Registrierter Benutzer
Links : Onlinestatus : krel ist offline
Registriert seit: Nov 2006
Ort: Osnabrück
Beiträge: 424
krel ist zur Zeit noch ein unbeschriebenes Blatt
Standard Smarty und das selected in einem <select> feld

Hallo, ich arbeite mich derzeit in Smarty ein und versuche jetzt grad ein dynamisches select feld zu erzeugen. Das erzeugen ist kein Problem, doch möchte ich gerne, wenn ein Feld noch nicht ausgefüllt wurde das zuletzt selektierte wieder selektiert wird, was ja über selected ="abc" geht. folgender code:

index.tpl
PHP-Code:
<tr>
   <
td>
      <
input type="checkbox" name="rennen[{$rennen.nr}]" value="{$rennen.nr}" {$rennen.checked}>
   </
td>
   <
td>
      {
$rennen.bezeichnung}{$rennen.select}
   </
td>
   <
td>
      <
select name="{$rennen.nr}" size="3">
         {
html_options values=$rennen.lg output=$rennen.lg selected="{$rennen.select}" }
      </
select>
   </
td>
   <
td>{$rennen.fehler}</td>
</
tr
index.php

PHP-Code:

$rennen
[] = array("nr"=> $row['Nr'],
   
"bezeichnung"=> $row['Nr'].")".$row['Bezeichnung']."(".$klasse.")",
   
"lg"=> explode(",",$row['Leistungsgruppen']),
   
"checked"=> $checked,
   
"select"=> $select); 
das ganze wird in der PHP datei mittels eine while schleife erzeugt und dann in der tpl mittels foreach ausgegeben, für das $rennen.checked funktioniert es auch nur funktioniert dieser Teil noch nicht
{html_options values=$rennen.lg output=$rennen.lg selected="{$rennen.select}" }
es wird einfach nichts ausgewählt, obwohl an dieser Stelle {$rennen.bezeichnung}{$rennen.select}
eindeutig ein das richtige ausgegeben wird.Der erzeugte Quellcode:
PHP-Code:
<tr>
   <
td>
      <
input type="checkbox" name="rennen[3]" value="3" >
   </
td>
   <
td>
      
3)Männer Achter(8+)II
   
</td>
   <
td>
      <
select name="3" size="3">
         <
option label="I" value="I">I</option>
         <
option label="II" value="II">II</option>
         <
option label="III" value="III">III</option>
      </
select>
   </
td>
</
tr
jemand ne Idee wieso ich nicht dynamisch selektieren kann? direkt eingegeben funktioniert das ganze

mfg
Mit Zitat antworten
  #2 (permalink)  
Alt 06-06-2007, 22:30
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Dann wirst du jetzt mal schön debuggen und gucken wo $checked welche Werte hat.
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #3 (permalink)  
Alt 06-06-2007, 22:35
krel
 Registrierter Benutzer
Links : Onlinestatus : krel ist offline
Registriert seit: Nov 2006
Ort: Osnabrück
Beiträge: 424
krel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

es geht doch gar nicht um das $checked sondern um das $rennen.select und das hat an der richtigen Stelle ja den richtigen Wert, denn sonst würde hier:
tpl=>{$rennen.bezeichnung}{$rennen.select}
erzeugter Code =>3)Männer Achter(8+)II
daher ist es da auf jeden Fall da. nur wenn ich es hier einfüge
{html_options values=$rennen.lg output=$rennen.lg selected="{$rennen.select}" }

wird es anscheinend nicht erkannt..
es ist doch möglich an dieser Stelle eine Variable zu setzen, oder??

mfg

EDIT:

das "II" kommt dann aus dem {$rennen.select}
wieso wird es bei den html_options nicht erkannt


Geändert von krel (06-06-2007 um 22:44 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 06-06-2007, 22:47
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Dann geht es eben und eine andere Variable. Debugge und prüfe was die Variablen beinhalten.
PHP-Code:
 "checked"=> $checked,
"select"=> $select 
EDIT:
weil dort selected stehen muss und zwar genau bei dem das ausgewählt werden soll. -> HTML
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #5 (permalink)  
Alt 06-06-2007, 22:52
krel
 Registrierter Benutzer
Links : Onlinestatus : krel ist offline
Registriert seit: Nov 2006
Ort: Osnabrück
Beiträge: 424
krel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

es stimmt doch auch alles
PHP-Code:
$rennen[] = array("nr"=> $row['Nr'],
   
"bezeichnung"=> $row['Nr'].")".$row['Bezeichnung']."(".$klasse.")",
   
"lg"=> explode(",",$row['Leistungsgruppen']),
   
"checked"=> $checked,
   
"select"=> $select);

echo 
"<PRE>".print_r($rennen)."</PRE>"
ergibt folgendes nach dem abschicken des formulars und dem anklicken der zweiten Checkbox und der auswahl im zweiten SelectFeld
Array
(
[0] => Array
(
[nr] => 3
[bezeichnung] => 3)Männer Achter(8+)
[lg] => Array
(
[0] => I
[1] => II
[2] => III
)

[checked] =>
[select] =>
)

[1] => Array
(
[nr] => 15
[bezeichnung] => 15)Männer achter(8+)
[lg] => Array
(
[0] => I
[1] => II
[2] => III
)

[checked] => checked
[select] => II
)

)
es muss ja auch das richtige drin stehen sonst würde ja bei einem {$rennen.select} in der tpl vor dem selectFeld auch nicht "II" ausgegeben werden, RICHTIG?

mfg
Mit Zitat antworten
  #6 (permalink)  
Alt 06-06-2007, 23:37
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Falsch.
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #7 (permalink)  
Alt 07-06-2007, 09:26
krel
 Registrierter Benutzer
Links : Onlinestatus : krel ist offline
Registriert seit: Nov 2006
Ort: Osnabrück
Beiträge: 424
krel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

jaja das man das so mittels html direkt macht ist mir klar aber bei Smarty macht man das in dem man das Value angibt siehe:
http://smarty.php.net/crashcourse.php
viertes Beispiel

mfg
Mit Zitat antworten
  #8 (permalink)  
Alt 07-06-2007, 09:55
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Man gibt nicht den Value sondern den Key an. Und da auch nicht in geschweiften Klammern. Manual lesen!

http://smarty.php.net/manual/en/lang...ml.options.php
Mit Zitat antworten
  #9 (permalink)  
Alt 07-06-2007, 09:57
Koala
 PHP Junior
Links : Onlinestatus : Koala ist offline
Registriert seit: Jan 2006
Beiträge: 887
Koala ist zur Zeit noch ein unbeschriebenes Blatt
Standard

mal auf das Beispiel bezogen:
PHP-Code:
include('Smarty.class.php');

// create object
$smarty = new Smarty;

// assign options arrays
$smarty->assign('id', array(1,2,3,4,5));
$smarty->assign('names', array('bob','jim','joe','jerry','fred'));

// hier ermittelst Du die Option die selected sein soll
$number $_POST['user']; 

// Wert der selektierten Option der Smartyvariablen "sel" zuweisen
$smarty->assign('sel'$number);

// display it
$smarty->display('index.tpl');


// in der index.tpl:

<select name=user>
{
html_options values=$id output=$names selected=$sel}
</
select
Mit Zitat antworten
  #10 (permalink)  
Alt 07-06-2007, 10:12
krel
 Registrierter Benutzer
Links : Onlinestatus : krel ist offline
Registriert seit: Nov 2006
Ort: Osnabrück
Beiträge: 424
krel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja ok soweit hab ich das ganze jetzt verstanden. Ich versteh jetzt leider nur noch nicht wie ich das ganze in einem Array mache, denn ich habe ja mehrere select felder. Mal das Bsp von oben betrachtet so besteht mein select Feld aus folgenden Werten
[lg] => Array
(
[0] => I
[1] => II
[2] => III
)
das ist gleichzeitig ausgabe und value
wenn ich jetzt in meiner tpl folgendes schreibe selected="I" dann wird "I" vorselektiert. wie ist denn jetzt der zugehörige key? der von [lg] funktioniert nicht...

mfg
Mit Zitat antworten
  #11 (permalink)  
Alt 07-06-2007, 10:22
Koala
 PHP Junior
Links : Onlinestatus : Koala ist offline
Registriert seit: Jan 2006
Beiträge: 887
Koala ist zur Zeit noch ein unbeschriebenes Blatt
Standard

mehrere Selectfelder ?

Dann hast vermutlich ein mehrdimensionales Array.

Wenn Du damit nicht umgehn kannst, dann lern die Array-Grundlagen.

http://tut.php-q.net/array.html

Ich mach jedenfalls nicht die Arbeit für Dich und schreib Dir Dein Script.

Tips hast Du genügend bekommen - man muß Antworten eben auch verstehen können.
Mit Zitat antworten
  #12 (permalink)  
Alt 07-06-2007, 10:35
krel
 Registrierter Benutzer
Links : Onlinestatus : krel ist offline
Registriert seit: Nov 2006
Ort: Osnabrück
Beiträge: 424
krel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Es hat auch niemand behauptet, dass du mein Script schreiben sollst. Ich wollte nur ne Hilfe haben welchen Key ich verwenden muss. Denn sowohl 0-2 als auch I-III funktioniert nicht und das sind für mich die beiden Varianten.
danke
Mit Zitat antworten
  #13 (permalink)  
Alt 07-06-2007, 10:46
Koala
 PHP Junior
Links : Onlinestatus : Koala ist offline
Registriert seit: Jan 2006
Beiträge: 887
Koala ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du mußt den richtigen key nehmen - je nachdem welches Feld Du brauchst - ist doch logisch oder ?

Bei mehreren Selectfeldern hast auch mehrere Keys - auch logisch ?

Bei mehreren möglichen selektierten Optionsfeldern (je Select ein selektiertes Optionsfeld) hast mehrere Keys die zu den Selectarrays gehören welche wiederum in einem Array sind.

Nicht verstanden ?

Eben - deswegen hab ich den Link zum Tutorial gepostet.

Aber Du reitest lieber auf meiner Bemerkung rum, daß ich Dir Dein Script nicht schreib, anstatt den Umgang mit Arrays zu lernen.

In der Zeit in der Du hier postest, hättest schon ein bißchen was lernen können.

Aber wie Du meinst - warte halt bis jemand kommt und Dir genau sagt wo was hingeschrieben werden muß.

Viel Spaß beim warten.

*******

ich seh gerade was für Zeug Du schreibst:

Zitat:
denn ich habe ja mehrere select felder
Das ist doch Quark - Du hast mehrere Optionsfelder - nicht mehrere Selektfelder !

Ich nehm das von vorhin zurück:

Mach kein php-Grundlagentutorial, sondern ein html-Tutorial !

Und zu diesem hier:

Zitat:
[lg] => Array
(
[0] => I
[1] => II
[2] => III
)
...
wenn ich jetzt in meiner tpl folgendes schreibe selected="I" dann wird "I" vorselektiert. wie ist denn jetzt der zugehörige key?
Tja - wie lautet bei obigem Array wohl der key der zu "I" gehört ?

Mach das http://tut.php-q.net/ - da steht doch wie man den Key zu einem Wert findet !

Geändert von Koala (07-06-2007 um 10:53 Uhr)
Mit Zitat antworten
  #14 (permalink)  
Alt 07-06-2007, 11:02
krel
 Registrierter Benutzer
Links : Onlinestatus : krel ist offline
Registriert seit: Nov 2006
Ort: Osnabrück
Beiträge: 424
krel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

nein nein, ich habe schon mehrere select Felder mit jeweils maximal 3 Optionen, ich hab jetzt nochmal folgendes ausprobiert und das funkioniert einwandfrei:
index.php

PHP-Code:
$lg = array("I","II","III");
$smarty->assign("lg",$lg);
if(isset(
$_POST['leistungsgruppe'])){
    
$smarty->assign("selectedlg",$_POST['leistungsgruppe']);

die index.tpl
PHP-Code:
<select name="leistungsgruppe" size="3">
   {
html_options values=$lg output=$lg selected="$selectedlg"}
</
select
also ist wieder value und output gleich. Also steht jetzt in $_POST['leistungsgruppe'] entweder "I","II" oder "III" gleiches gilt wenn ich mehrere Selectfelder habe. Diese erzeuge ich dann mittels foreach in der tpl wie oben beschrieben da fehlt nur das {foreach from=$rennen item=rennen} und {/foreach} und da sollte ich doch dann auch "I","II" oder "III" verwenden können. Es funktioniert ja auch wenn ich eines von diesen dreien direkt in die tpl eingebe
z.B:
PHP-Code:
<select name="{$rennen.nr}" size="3">
   {
html_options values=$lg output=$lg selected="I"}
</
select
funktioniert
Mit Zitat antworten
  #15 (permalink)  
Alt 07-06-2007, 11:12
Koala
 PHP Junior
Links : Onlinestatus : Koala ist offline
Registriert seit: Jan 2006
Beiträge: 887
Koala ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Deine Selectfelder müssen sich im Namen unterscheiden.

Wo und wie fragst Du denn die POST-Werte für die 3 Felder ab und wie sind die Namen der select-Felder ?

Du hast normalerweise ein Array mit den 3 Selectfeldern und in diesem Array befinden sich die 3 Arrays mit den Optionsfeldern.

Das ergibt also ein foreach innerhalb eines anderen foreach um das gewählte Optionsfeld bestimmen zu können.

Innerhalb der äußeren foreach werden die 3 Arrays für Smarty erzeugt.

Hast Du das jetzt begriffen ?

Hast Du inzwischen das Tutorial gemacht ?

Meinst Du ich würd das empfehlen wenn es nicht nötig wär ?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:39 Uhr.