SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 14.06.2010, 21:47:45
CrystalRed CrystalRed ist offline
Anfänger
 
Registriert seit: Jun 2010
Alter: 44
Beiträge: 3
"input type='hidden'" gibt falschen Wert weiter.

Hallo Leute,

ich bin gerade dabei einen kleinen Onlineshop zu programmieren. Ich habe eine Artikellist erstellt und wollte mittels "versteckten Button" die ArtikelID weitergeben. Nun das Problem: es wird nicht die ID weitergegeben die ausgewählt wurde sondern die letzte ID aus der Liste und somit ein Falscher Artikel.

Hier mal der Code der Artikelliste:

PHP-Code:
<?php
    session_start 
();
    include_once 
"function.inc.php";
?>

<?php

    $artikel_kategorie 
$_SESSION["Kategorie"];
    
$artikel_art $_SESSION["ArtikelArt"];
    
    
$abfrage "SELECT artikel_bild,
                artikel_nummer,
                artikel_bezeichnung,
                artikel_beschreibung
                FROM artikel
                WHERE artikel_kategorie = '$artikel_kategorie'
                AND artikel_art = '$artikel_art'"
;
    
db_verbindung();
    
$result mysql_query($abfrage);
    
mysql_close();
    
$dsanz mysql_num_rows($result);

    echo 
"<form method='post' action='weiterleitung.php'><table border='1' style='margin:20px;'>";    
    for (
$i=1$i <= $dsanz$i++)
    {
        
$wert mysql_fetch_row($result);
        
$bild $wert[0];
        
$artikelnummer $wert[1];
        
$titel $wert[2];
        
$beschreibung $wert[3];
        
        echo 
"<tr><td rowspan='2'>"?><img src='graphic/artikel/<?php echo "$bild"?>' width="100%" height="100%"> <?php echo "</td>";
        echo 
"<td><b>Artikelnummer: $artikelnummer</b></td>";
        echo 
"<td><b>$titel</b></td>";
        
        
        
        
//echo "<td rowspan='2'><input type='submit' name='btn[inWarenkorb]' value=$artikelnummer></td>";
        
echo "<td rowspan='2'><input type='image' name='inWarenkorb' src='graphic/Buttons/warenkorb.jpg'><input type='hidden' name='btn[inWarenkorb]' value=$artikelnummer></td>";


        echo 
"<tr><td colspan='2'>$beschreibung</td>";
        echo 
"</tr><tr><td>*</td></tr></tr>";
        
    }
    echo 
"</table></form>";
?>
$artikelnummer wird befüllt und in der Artikelliste korrekt ausgegeben. Jedoch nach betätigung des Buttons: 'inWarenkorb' wird in "weiterleitung.php" der Falsche Wert angezeigt.

Kommentiert man
PHP-Code:
echo "<td rowspan='2'><input type='image' name='inWarenkorb' src='graphic/Buttons/warenkorb.jpg'><input type='hidden' name='btn[inWarenkorb]' value=$artikelnummer></td>"
aus und
PHP-Code:
echo "<td rowspan='2'><input type='submit' name='btn[inWarenkorb]' value=$artikelnummer></td>"
ein funktioniert alles so wie es sein sollte. Nur mit den Unterschied das nicht der Einkaufswagen angezeigt wird sonder der Button mit der Artikelnummer.

Bin für jeden Tipp dankbar!

LG Alex
Mit Zitat antworten
  #2  
Alt 15.06.2010, 04:43:37
Benutzerbild von rarios
rarios rarios ist offline
Member
 
Registriert seit: Jun 2006
Beiträge: 655
AW: "input type='hidden'" gibt falschen Wert weiter.

Entschuldige, dass ich das so sage, aber das ganze Formular ist nicht wirklich sinnvoll programmiert.
Es ist vollkommen logisch, dass nur die letzte Artikelnummer übertragen wird.

PHP-Code:
echo "<td rowspan='2'><input type='image' name='inWarenkorb' src='graphic/Buttons/warenkorb.jpg'>"
Mit diesem echo-Befehl erzeugst Du zwar ein Bild als Submit, trotzdem enthält das ganze Formular lauter hidden-Felder mit derselben name-Deklarierung: "btn[inWarenkorb]".
Folgerichtig wird der letzte gesetzte Wert übertragen, da sich die anderen quasi "überschreiben".
__________________
Liebe Grüße
Mit Zitat antworten
  #3  
Alt 15.06.2010, 07:34:50
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: "input type='hidden'" gibt falschen Wert weiter.

Zitat:
Zitat von CrystalRed Beitrag anzeigen
PHP-Code:
<input type='image' name='inWarenkorb' src='graphic/Buttons/warenkorb.jpg'
eingabefelder von typ image sind mir persönlich nicht bekannt. wenn formulare nicht funktionieren, sind sie i.d.r. kaputt / invalide. mehr dazu gibt's bei SELFHTML.

cx
Mit Zitat antworten
  #4  
Alt 15.06.2010, 07:57:08
CrystalRed CrystalRed ist offline
Anfänger
 
Registriert seit: Jun 2010
Alter: 44
Beiträge: 3
AW: "input type='hidden'" gibt falschen Wert weiter.

Hallo Leute,

danke jedenfalls mal für die Rückmeldung. Nur: wieso ist das ganze Formular nicht wirklich sinnvoll Programmiert? Soll doch nichts weiter machen als eine Liste der Datenbankeinträge ausgeben.

Gibt es dafür eine mögliche lösung wie ich den Wert im versteckten Butten "btn[inWarenkorb]" nicht immer überschreibe?

Wieso wird der Versteckte Button immer überschrieben und der andere (eine Zeile oberhalb) nicht?

LG Alex
Mit Zitat antworten
  #5  
Alt 15.06.2010, 08:22:18
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: "input type='hidden'" gibt falschen Wert weiter.

Zitat:
Zitat von CrystalRed Beitrag anzeigen
Gibt es dafür eine mögliche lösung wie ich den Wert im versteckten Butten "btn[inWarenkorb]" nicht immer überschreibe?
lies' den satz bitte noch einmal:

Zitat:
Zitat von rarios Beitrag anzeigen
[...] trotzdem enthält das ganze Formular lauter hidden-Felder mit derselben name-Deklarierung [...]
anm.: es ist das name-attribut gemeint.

Zitat:
Zitat von CrystalRed Beitrag anzeigen
Wieso wird der Versteckte Button immer überschrieben und der andere (eine Zeile oberhalb) nicht?
korrigiere das formular - dann kann man weiterschauen. wieso sollte man sich den kopf zerbrechen, warum eine kaputte sache mal funktioniert und mal nicht?

cx
Mit Zitat antworten
  #6  
Alt 15.06.2010, 08:30:26
CrystalRed CrystalRed ist offline
Anfänger
 
Registriert seit: Jun 2010
Alter: 44
Beiträge: 3
AW: "input type='hidden'" gibt falschen Wert weiter.

Hallo Cortex,

um das Formular problemlos zum laufen zu bringen braucht man nur den auskommentierten Button entkommentieren und den Button darunter einfach auskommentieren. Dann funktioniert alles so wie es funktionieren soll. Trotz des gleichen namen-attributes.

Soweit sogut. jetzt würde das Formular funktionieren. Aber wie bekomme ich jetzt ein Bild statt des häßlichen Buttons, der als Namen die Artikelnummer hat, in das Formular?

LG Alex
Mit Zitat antworten
  #7  
Alt 15.06.2010, 08:39:37
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: "input type='hidden'" gibt falschen Wert weiter.

hallo CrystalRed,

Zitat:
Zitat von CrystalRed Beitrag anzeigen
um das Formular problemlos zum laufen zu bringen [...]
ich möchte mich nicht wiederholen; ich musste mir erst gestern ein unqualifiziertes statement zu einem ähnlichen problem reinziehen:

Zitat:
Zitat von Gothic Beitrag anzeigen
[...] bei der Ausgabe von 'gültigem und vollständigem HTML' ensteht dadurch nur zusätzlicher Datenmüll.
valides (X)HTML ist keine glaubensfrage, sondern voraussetzung dafür, websites zu produzieren, die in möglichst vielen unterschiedlichen browsern erwartungsgemäsz funktionieren.

Zitat:
Zitat von CrystalRed Beitrag anzeigen
Aber wie bekomme ich jetzt ein Bild statt des häßlichen Buttons, der als Namen die Artikelnummer hat, in das Formular?
verstehe deine frage leider nicht. willst du nun ein bild, einen button oder einen button mit hintergrundbild? wie auch immer - belies' dich bitte selbst: (X) HTML bei SELFHTML.

cx
Mit Zitat antworten
  #8  
Alt 15.06.2010, 09:24:41
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: "input type='hidden'" gibt falschen Wert weiter.

Wie ich das sehe gibts da ein Dutzend(oder so) Imagebuttons!

Wenn man sie unterscheiden möchte, dann brauchen sie unterschiedliche Namen. Denn Image Buttons haben kein Value (außer im FF). Da sie ansonsten nur freiwillig Koordinaten liefern ist die Auswertung etwas tricky.

PHP-Code:
<?php
error_reporting
(E_ALL);
ini_set('display_errors'TRUE);
?>
<form action="" method="post">
  <input type="image" name="image[1][]" value="egal" src="btn.jpg" title="ein Button"/>
  <input type="image" name="image[2][]" value="egal" src="btn.jpg" title="ein Button" />
  <input type="image" name="image[3][]" value="egal" src="btn.jpg" title="ein Button" />
  <input type="image" name="image[4][]" value="egal" src="btn.jpg" title="ein Button" />
  <input type="image" name="image[rot][]" value="egal" src="btn.jpg" title="ein Button" />
</form>
<hr>
<h1>Auswertung</h1>
<?php
    
if(!empty($_POST['image']))
    {
      
$Button array_pop(Array_keys($_POST['image']));
      echo 
" Button $Button geklickt <br>";
      echo 
" X POS: {$_POST['image'][$Button][0]} <br>";
      echo 
" Y POS: {$_POST['image'][$Button][1]} <br>";
      if(isset(
$_POST['image'][$Button][2]))
      {
        echo 
"Value: {$_POST['image'][$Button][2]} <br>";
        echo 
"Vorsicht: Inkompatibles FF/Gecko Viech.<br>";
      }
    }else
    {
      echo 
"Kein Image Button geklickt.";
    }
?>
<hr>
<pre>
<h1>Post Daten</h1>
 <?php
    var_export
($_POST);
 
?>
</pre>
Die ganzen hidden Fields können in die Tonne.

Geändert von DokuLeseHemmung (15.06.2010 um 09:48:44 Uhr)
Mit Zitat antworten
  #9  
Alt 15.06.2010, 10:16:46
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: "input type='hidden'" gibt falschen Wert weiter.

herr gott nochmal, es gibt kein attribut image beim HTML-element input. sollte hier ein klick-button mit bild-hintergrund gemeint sein, muss das ungefähr so aussehen:

HTML-Code:
    <button name="Klickmich" type="button" value="Überraschung" onclick="alert('Überraschung!');">
        <img src="selfhtml.gif" width="106" height="109" alt="SELFHTML Logo">
    </button>
quelle: Klick-Buttons definieren (Bild)

dass ein eingabefeld (input) mit einer ressource (image) in zusammenhang gebracht wird, ist doch per se widersprüchlich.

cx
Mit Zitat antworten
  #10  
Alt 15.06.2010, 10:22:46
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: "input type='hidden'" gibt falschen Wert weiter.

Da muss ich dir widersprechen!

Zitat:
Erläuterung:

Mit <input type="image"> definieren Sie einen grafischen Button (input = Eingabe). Die gewünschte Grafikdatei bestimmen Sie mit dem Attribut src (src = source = Quelle). Weisen Sie eine geeignete Grafik vom Typ GIF, JPEG oder PNG zu. Im obigen Beispiel wird vorausgesetzt, dass sich die Grafik absende.gif im gleichen Verzeichnis befindet wie die HTML-Datei mit dem Formular. Für das Adressieren der Grafik gelten die Regeln zum Referenzieren in HTML
Aus: http://de.selfhtml.org/html/formular....htm#grafische

Und selbst in den betreffenden DTD Dateien wirst du die Image Inputs finden.
Es gibt also nichts an den Image Inputs auszusetzen.
Siehe:
Zitat:
Code:
<!ENTITY % InputType
  "(text | password | checkbox |
    radio | submit | reset |
    file | hidden | image | button)"
   >
Aus: http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd

Geändert von DokuLeseHemmung (15.06.2010 um 10:32:56 Uhr)
Mit Zitat antworten
Antwort

Stichworte
hidden, weiterleitung


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

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wert aus einem Array löschen jan84 PHP Grundlagen 3 07.12.2011 22:34:13
Ausgelesenen Wert von statischem Wert subtrahieren Unwissender HTML, CSS und JavaScript Help! 1 01.05.2010 08:08:38
Problem - kleinsten Wert ermitteln und in spalte schreiben. starkeeper MySQLi/PDO/(MySQL) 1 07.08.2009 13:26:40
setDate legt falschen Wert an Reinfi HTML, CSS und JavaScript Help! 3 03.02.2009 14:26:38
Wert im String suchen... DanielEXQ PHP für Fortgeschrittene und Experten 8 26.03.2003 10:10:23


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:02:26 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt