php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.06.2005, 16:28  
Benutzer
 
Registriert seit: 31.08.2004
Beiträge: 61
RoDa
Standard dynamisch erstellte Formularfelder mit POST übergeben

Hallo zusammen

Ich habe ein Problem mit der Übergabe von dynamisch erstellten Formularfeldern per POST.

Aus einer DB lese ich die Felder und erstelle dynamisch ein Formular:

PHP-Code:
<?php
for($i=1;$i<$feldanzahl;$i++) // erst ab dem 2. Feld
{
    echo 
"<td><textarea name=\"".mysql_field_name($ergebnis,$i)."\"  cols=\"50\" rows=\"10\">".nl2br(htmlentities(mysql_result($ergebnis,0,$i)))."</textarea></td>"// alle Feldinhalte der Tabelle; Datensatznummer ist immer 0, weil nur 1 Datensatz üder die ID selektiert wird
    
$felder.=mysql_field_name($ergebnis,$i)."|"// hier wird eine Variable erstellt, die in ein hidden-Feld im Formular kommt
}
echo 
"<input name=\"felder\" type=\"hidden\" value=\"".$felder."\">";
?>
Nun wird das Formular mit POST übergeben, aber ich weiss noch nicht, welche Felder es enthält; jedoch sind diese in $felder gespeichert. Also habe ich versucht, diese wie folgt auszulesen:
PHP-Code:
<?php
$felder
=$HTTP_POST_VARS['felder'];
$allefelder=explode("|",$felder);
for(
$i=0;$i<$feldanzahl;$i++)
{
    
$feldinhalt=$HTTP_POST_VARS['$allefelder[$i]'];
    
//weiterer Code
}
?>
Allerdings schlägt der Versuch fehl, wahrscheinlich weil keine Variabel an $HTTP_POST_VARS übergeben werden kann?!

Hat mir irgendjemand einen Tipp?

Danke.
RoDa
RoDa ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.06.2005, 16:52  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ähm. $feldanzahl und $felder sind dort ja gar nicht verfügbar.
Nach dem Absenden des Formulars sind diese Variablen doch undefiniert.

Ich glaube, dass was Du suchst ist: foreach [1] / [2]

Schau Dir mal folgendes Beispiel an. Eventuell erkennst Du dann, wie Du Dein Problem lösen kannst.
PHP-Code:
<?php

    
if(array_key_exists('submit'$_POST)) {
        
/**
         * Inhalte des Formulars anzeigen
         */
        
foreach($_POST as $key => $value) {
            if(
$key != 'submit') {
                
printf('Feld "%s": %s 
'
$key$value);
            }
        }
    }
    else {
        
printf('<form action="%s" method="post">
                    <input type="text" name="name" />

                    <input type="text" name="mail" />

                    <input type="submit" name="submit" value="Absenden" />

                </form>'

                
$_SERVER['PHP_SELF']);
    }
    
?>

Ich hoffe mal, dass ich Dich auch richtig verstanden habe

Grüße Ben.
imported_Ben ist offline  
Alt 18.06.2005, 16:57  
Gast
 
Beiträge: n/a
Standard

Ich verwende einfach mal $_POST statt $HTTP_POST_VARS. Mehr oder weniger die selbe Soße; $_POST ist nur neuer und ist "superglobal", d.h. von überall her zu erreichen (siehe auch http://www.php.net/manual/en/languag...bles.scope.php)

per foreach kann über jedes beliebige Feld iteriert werden.
Schau Dir einfach mal an, was
PHP-Code:
<?php
foreach($_POST as $key=>$value)
   echo 
'key: "'$key'" value: "'$value'"
'
;
?>
an Stelle Deines zweiten Skripts ausgibt.

Sollte das garnicht ausgeben, änder $_POST in $_GET ab und versuche es nocheinmal.
 
Alt 19.06.2005, 12:41  
Benutzer
 
Registriert seit: 31.08.2004
Beiträge: 61
RoDa
Standard foreach

Herzlichen Dank für die Antwort. foreach ist die Lösung. Ich kannte zwar den Befehl, wusste aber nicht, dass er sich auch mit $_POST anwenden lässt.

@Ben: Die Variablen sind zwar in meinem Code-Fragment nicht drin, sind aber vorhanden; das Problem liegt also bloss bei foreach.

@VolkerK: Danke für den Zweizeiler. War eine sehr komfortable Art, mein Problem in den Griff zu bekommen.

RoDa
RoDa ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
dynamisch erzeuget Formularelemente via POST versenden hannes HTML, Usability und Barrierefreiheit 5 17.05.2006 10:26
dynamisch erstellte dateien zum download zusammenfassen PHP-Fortgeschrittene 4 02.12.2004 11:00
Dynamisch erstellte Variablen ansprechen PHP Tipps 2004 2 08.08.2004 20:15

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php $_post dynamisch übergeben, php formular dynamische felder, php formular übergabewerte dynamische namen, hidden field dynamisch in formular, per javascript erstellte elemente senden nicht, $_post alle felder übergeben, foreach php formular feldnamen übergabe auslesen, php post dynamisch, html post felder, dynamische post php, php forumlardaten post übergeben, html feld per post übergeben, felder mit $_post übergeben, _post dynamisch mit zwei, php post dynamisches formular, php dynamisches formular textfeld übergeben, formular feld dynamisch js abschicken, dynamische _post php, $_post dynamische felder, dynamisch erstellte input felder werden beim post nicht übergeben

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:29 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.