<select>... value-Wert anstatt Eintrag auslesen

A

andyK

Hallo,

(die Fragerei will einfach nicht aufhören...)

Zur Situation:
Ich habe folgende Funktion:

PHP:
	function ipcounter()
	{
	   global $conf, $HTTP_GET_VARS, $site_db;
	   
	  for($i=1;$i<25;$i++)
       {
          if($site_db->zeile[0]["IP_COUNTER"] == ($i*60*60))
          	$ipcount .= '<option vaue="'.($i*60*60)." selected>".$i." Stunden</option>";
            else $ipcount .= '<option vaue="'.($i*60*60)." >".$i." Stunden</option>";
       } return $ipcount;
    }

Diese ließt aus einer Datenbank den Wert für die Counter-Sperre. Dieser ist (von Hand eingetragen) in Sekunden.
Die Funktion rechnet mir nun die Sekunden in Stunden um und gibt diese aus.
Der value-Wert bleibt aber bei den Sekunden.

Wenn ich nun was ändere und anschließend speicher, schreibt er mir anstelle
der Sekunden zum Beispiel "2 Stunden" in die Datenbank, was letztendlich
die ganze Funktion zunichte macht.
Denn "2 Stunden" *60*60 geht ja nicht.

Die Funktion zum speichern sieht folgendermaßen aus:

PHP:
	function savedata()
	{
	   global $conf, $HTTP_POST_VARS, $HTTP_GET_VARS, $site_db;
	
      $site_db->zeile[0]["TITEL"] = $HTTP_POST_VARS["site_cfg_titel"];
      $site_db->zeile[0]["URL"] = $HTTP_POST_VARS["site_cfg_url"];
      $site_db->zeile[0]["IP_COUNTER"] = $HTTP_POST_VARS["site_cfg_ip_counter"];
      $site_db->zeile[0]["IP_ONLINE"] = $HTTP_POST_VARS["site_cfg_ip_online"];
      $site_db->zeile[0]["EMAIL"] = $HTTP_POST_VARS["site_cfg_email"];
      $site_db->save(); 
      echo tplprint(tplload("admin/general.tpl.html"), array("hptitel" => $site_db->zeile[0]["TITEL"],
	   							 "email" => $site_db->zeile[0]["EMAIL"],
	   							 "ip_count" => $this->ipcounter(),
	   							 "ip_online" => $this->iponline(),
	   							 "hpurl" => $site_db->zeile[0]["URL"],
	   							 "design" => $this->getfolder("themes/", $conf->site_cfg_design),)); 
      
	}

Die Frage:

Was muss ich tun, damit nicht der Eintrag, sondern der value-Wert in die
Datenbank gespeichert wird?

Andy
 
Eigentlich garnix....wenn ne <option> einen "value" hat,wird der auch übermittelt,und nicht der Text.
Ich schätze mal,das HTML des Formulars wird nicht korrekt ausgegeben,hinter ($i*60*60). fehlt jeweils das Hochkomma.
 
hmm...

ich hab das gemacht, was Du gesagt hast.

Der Script sieht nun so aus:

PHP:
	function ipcounter()
	{
	   global $conf, $HTTP_GET_VARS, $site_db;
	   
	  for($i=1;$i<25;$i++)
       {
          if($site_db->zeile[0]["IP_COUNTER"] == ($i*60*60))
          	$ipcount .= "<option vaue=\"".($i*60*60)."\" selected>".$i." Stunden</option>\n";
            else $ipcount .= "<option vaue=\"".($i*60*60)."\">".$i." Stunden</option>\n";
       } return $ipcount;
    }

Aber er speichert immernoch den Wert und nicht das Value. :(

Die HTML siehst so aus:

...
<select name="site_cfg_ip_counter" size="1">{ip_count}</select>
...

*grübel*

**EDIT**

Ausgegeben und dann "Quelltext anzeigen" sieht so aus:

<select name="site_cfg_ip_counter" size="1">
<option vaue="3600">1 Stunden</option>
<option vaue="7200">2 Stunden</option>
...
 
Zuletzt bearbeitet von einem Moderator:
falls du noch nen kleines "L" übrig hast und im HTML dann
Code:
<option value="3600">1 Stunden</option>
steht,sollte die Zahl ankommen :)
 
Zuletzt bearbeitet:
Peinlich!

Es geht. :)

STRG+C und STRG+V sind zwar ne feine Sache, aber man sieht ja, was bei
rauskommen kann.

Und, wer lesen kann, ist klar im Vorteil.


1000 Dank!

Andy
 
Zurück