• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Feld hinzufügen

Status
Für weitere Antworten geschlossen.

tiroler

Neues Mitglied
hallo leute,

ich hab ein kleines programm geschrieben und ich möchte jetzt wenn man auf den button "feld hinzufügen" klickt das eine weiter zeile hinzugefügt wird.
wer kann mir bitte helfen da ich nicht wirklich weiß wie sowas geht???

hier mein programm:

PHP:
<?
$value1="0";
if(isset($_POST['min']) && $_POST['min'] != "" ){
$value1=(int)$_POST['min'];
}
$value2="0";
if(isset($_POST['watt']) && $_POST['watt'] != "" ){
$value2=(int)$_POST['watt'];
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<title>Lactat-Testseite</title>

<style type="text/css">
<!--
body {
    background-color: #afd8fb;
}
-->
</style></head>
<body>
<form action="lactat.php" method="post">
<fieldset>
<legend>Berechnung der Lactatkurve</legend>
<p></p>
<fieldset>
web4trainer Lactatkurve
<p></p>
<TD>Durchführung der Lactatmessung:
        <SELECT NAME="min" id="min" maxlength="20" />
            <OPTION VALUE="1"> jede Minute
            <OPTION VALUE="2"> alle 2 Minuten
            <OPTION VALUE="3"> alle 3 Minuten
            <OPTION VALUE="4"> alle 4 Minuten
            <OPTION VALUE="5"> alle 5 Minuten
            <OPTION VALUE="10"> alle 10 Minuten
            </SELECT></TD>
<p></p>
<TD>Wattstufensteigerung:
        <SELECT NAME="watt" id="watt" maxlength="20" />
            <OPTION VALUE="25"> 25 Watt
            <OPTION VALUE="30"> 30 Watt
            <OPTION VALUE="40"> 40 Watt
            <OPTION VALUE="50"> 50 Watt
            <OPTION VALUE="100"> 100 Watt
            </SELECT></TD>
<p></p>



  </div>
</form>




<p>
  <center><input type="submit" value="Eingabeliste" /><center>
  <br>
</p>
</p></p></p>
<fieldset>
<label for="ergebnis1"><br><?=$value1 ?> min <?=$value2 ?> Watt / Puls <input name="1P"> Lactat <input name="1L"> <input type="button" value="Feld hinzufügen" onclick="hinzu()">
</label>

<p></p>


</fieldset>
</fieldset>
</form>
</body>
</html>
danke für eure hilfe

Moved: JavaScript, AJAX und DHTML (XraYSoLo)
 
Zuletzt bearbeitet von einem Moderator:
ich hab ein kleines programm geschrieben und ich möchte jetzt wenn man auf den button "feld hinzufügen" klickt das eine weiter zeile hinzugefügt wird.
wer kann mir bitte helfen da ich nicht wirklich weiß wie sowas geht???
Ich nehme mal an, du meinst die JS Variante, denn in deinem Code steht:
HTML:
<input type="button" value="Feld hinzufügen" onclick="hinzu()">
Dazu müsstest du uns schon deine JS Funktion "hinzu()" zeigen, damit wir einen Überblick dafür bekommen.

Zum PHP-Teil: Wenn du diese JS Variante benutzt, müsstest du die Behandlung des POST-Arrays auch ändern, damit/(weil) sie nicht den gleichen Namen haben.

Mfg
 
hi,

danke für deine schnell antwort.

hmmmm, bin noch recht neu und mit JS kenn ich mich leider gar nicht aus!

gibt es kein andere möglich wie zb. ich erzeuge ein zusätzliches Feld zur eingabe und hier soll angegeben werden wie viele zeilen hinzugeügt werden sollen???

danke
 
habe jetzt mal was geschrieben nur hab würde ich gerne haben, dass er mir die felder von der zeile drüber übernehmen würde.
kann man im php sowas

HTML:
<label for="ergebnis1"><br><?=$value1 ?> min <?=$value2 ?> Watt / Puls <input name="1P"> Lactat <input name="1L"> <input type="button" value="Feld hinzufügen" onclick="hinzu()">
</label>
nicht einbauen???

PHP:
<?
$value1="0";
if(isset($_POST['min']) && $_POST['min'] != "" ){
$value1=(int)$_POST['min'];
}


$value2="0";
if(isset($_POST['watt']) && $_POST['watt'] != "" ){
$value2=(int)$_POST['watt'];
}

          
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<title>Lactat-Testseite</title>

<style type="text/css">
<!--
body {
    background-color: #afd8fb;
}
-->
</style></head>
<body>
<form action="lactat.php" method="post">
<fieldset>
<legend>Berechnung der Lactatkurve</legend>
<p></p>
<fieldset>
web4trainer Lactatkurve
<p></p>


<TD>Durchführung der Lactatmessung:
        <SELECT NAME="min" id="min" maxlength="20" />
            <OPTION VALUE="1"> jede Minute
            <OPTION VALUE="2"> alle 2 Minuten
            <OPTION VALUE="3"> alle 3 Minuten
            <OPTION VALUE="4"> alle 4 Minuten
            <OPTION VALUE="5"> alle 5 Minuten
            <OPTION VALUE="10"> alle 10 Minuten
            </SELECT></TD>
<p></p>
<TD>Wattstufensteigerung:
        <SELECT NAME="watt" id="watt" maxlength="20" />
            <OPTION VALUE="25"> 25 Watt
            <OPTION VALUE="30"> 30 Watt
            <OPTION VALUE="40"> 40 Watt
            <OPTION VALUE="50"> 50 Watt
            <OPTION VALUE="100"> 100 Watt
            </SELECT></TD>
<p></p>


Anzahl der Zeilen: 

    <input name = "zeile"><br>


  </div>
</form>




<p>
  <center><input type="submit" value="Eingabeliste" /><center>
  <br>
</p>
</p></p></p>
<fieldset>
<label for="ergebnis1"><br><?=$value1 ?> min <?=$value2 ?> Watt / Puls <input name="1P"> Lactat <input name="1L"> <input type="button" value="Feld hinzufügen" onclick="hinzu()">
</label>

<?

for ($i=1; $i<=$_POST["zeile"]; $i++)
          {
              
echo "<h1>

hallo

$i </h1>";

                        }

?>
<p></p>


</fieldset>
</fieldset>
</form>
</body>
</html>
 
Natürlich könntest du sowas auch in PHP nachbauen. Schöner ist es jedoch mit Javascript, da die Seite dann nicht neu geladen werden muss.
Der Umweg geht folgender Maßen.
Du hast 2 Submit Button. Einen um das Formular normal abzuschicken und einen um ein feld hinzuzufügen. du musst beiden Submits einen Namen mitgeben. Denn die Values der Submits werden dann auch mit gesendet.
Heisst wenn Submit1 != "" ist wurde der normale absenden Button gedrückt und wenn Submit2 != "" ist wurde der Feld hinzufügen Button gedrückt.
Des weiteren musst du im Formular ein hidden field erstellen, dass immer mitzählt wieviele Felde rzur zeit da sind. Diesen Wert zählst du dann einmal hoch wenn Feld hinzufügen geklickt wurde.
Hier ein Beispiel:
HTML:
<?php
  // Standard Felderzahl setzen
  $feldCounter = 1;
  
  // Wird abgesendet?
  if($_REQUEST['sende'] != "") {
    //sende
  }
  
  // Wird Feld erhöht
  if($_REQUEST['feld'] != "") {
    $tempCounter = $_REQUEST['feldcount'];
    if(is_numeric($tempCounter)) {
      $feldCounter = $tempCounter +1;
    }
  }
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <title>Bla</title>
  </head>
  <body>
    <?php
      // Testausgabe was mitgegeben wird
      echo "<pre>";
      var_dump($_REQUEST);
      echo "</pre>";
    ?>
    <br/>
    <form action="temp.php" method="get">
      <input type="submit" name="sende" value="Senden">
      <input type="submit" name="feld" value="Feld hinzufuegen">
      <input type="hidden" name="feldcount" value="<?php echo $feldCounter; ?>">
      
      <?php
      
      // Schleife die felder erstellt
      for($i=1; $i < $feldCounter; $i++) {
        echo "Feld".$i." <br/>";
      }
      ?>
    </form>
        
  </body>
</html>

Denek doch mal mit dem Beispiel sollte alles klar sein ;)
Script ist von mir getest und funktioniert :P.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben