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

Neues Inputfeld automatisch

webber979

Neues Mitglied
Hallo Leute ich möchte erreichen, dass ein neues Inputfeld erzeugt wird, sobald ein Value ausgewält wird. Ich dachte an so etwas in etwa. Wieso funkt. das Script nicht?

PHP:
Tätig in/als: <br />
<select name="taetigkeit">
<?php
foreach ($taetigarray as $taetigel) {
        if ($taetigel == $taetigkeit) {
          $gew4 = " selected='selected' ";
        } else {
          $gew4 = "";
        }
        echo "<option value='taetigel' $gew4>$taetigel</option>\n";
       }
?>
</select><br />
<?php
global $taetigkeit;
  if (!empty($taetigkeit)) {
   echo '<input type="text" name"taetigketname" size"30" maxlength"30" value" echo htmlspecialchars($taetigkeitname);" />';
} 

?>

2. Wie kann ich erreichen, dass wenn man auf einen kleinen Button clickt ein neues Inputfelderscheint?

Danke im Vorraus.
weber979
 
Werbung:
1. Der Fehler liegt hier
PHP:
echo '<input type="text" name"taetigketname" size"30" maxlength"30" value" echo htmlspecialchars($taetigkeitname);" />';
Müsste wohl eher so aussehen:
PHP:
echo '<input type="text" name"taetigketname" size"30" maxlength"30" value" '.htmlspecialchars($taetigkeitname).'" />';
(das doppelte Echo ist da falsch und Variablen können nur ein doppelten Anführungszeichen ohne . mit Strings verbunden werden und funktionen werden nicht aufgerufen, wenn sie Anführungszeichen stehen)

2. Mit JavaScript

Code:
document.NameDesForms.innerHTML += '<input type="text" name"taetigketname" size"30" maxlength"30" />';
Falls noch PHP-Code in das <input> von 2. soll, dann müsstest du das über Ajax lösen.
 
PHP:
<script language="javascript">
var taetigkeit = "<?php $taetigkeit ?>"
  if (var taetigkeit != "..." ) {
 document.NameDesForms.innerHTML += '<input type="text" name"taetigketname" size"30" maxlength"30" />';  
  }
 </script>

funktioniert aber nicht genauso wie der PHP Code den du mir genannt hast.
 
Werbung:
Der funktioniert sicher. Wie hast Du ihn denn bei dir eingebunden? Achja, hier hat sich noch ein Schreibfehler eingeschlichen:

Code:
document.NameDesForms.innerHTML += '<input type="text" name[COLOR=#FF0000]=[/COLOR]"taetigketname" size"30" maxlength"30" />';

EDIT: Auch beim PHP-Code fehlen noch die "=" an mehreren Attributen.
PHP:
echo '<input type="text" name="taetigketname" size="30" maxlength="30" value="'.htmlspecialchars($taetigkeitname).'" />';
 
Ich habs genauso hingeschrieben wie es da steht. Hab die Fehle korrigiert aber läuft nicht.
PHP:
<script language="javascript">
var taetigkeit = "<?php $taetigkeit ?>"
  if (var taetigkeit != "..." ) {
 document.NameDesForms.innerHTML += '<input type="text" name="taetigketname" size="30" maxlength="30" />';  
  }
 </script>
 
Hier müsste noch ein echo rein und ein Semikolon ans Ende.

PHP:
var taetigkeit = "<?php echo $taetigkeit ?>";

Außerdem müsste $taetigkeit irgendwo gesetzt werden. Ist es das nicht, kann auch nichts funktionieren.

Abgesehen davon wäre es gut wenn Du deinen kompletten Code zeigst, vlt. sogar einen Link zur Seite selbst damit man es im Browser nachvollziehen kann. Und wenn Du beschreibst was passiert wenn etwas nicht so funktioniert wie Du willst.
 
Werbung:
PHP:
Tätig in/als: <br />
<select name="taetigkeit">
<?php
foreach ($taetigarray as $taetigel) {
        if ($taetigel == $taetigkeit) {
          $gew4 = " selected='selected' ";
        } else {
          $gew4 = "";
        }
        echo "<option value='taetigel' $gew4>$taetigel</option>\n";
       }
?>
</select><br />

<script language="javascript">
var taetigkeit == "<?php echo '($_POST["taetigkeit"])' ?>";
  if (var taetigkeit != "..." ) {
 document.NameDesForms.innerHTML += '<input type="text" name="taetigketname" size="30" maxlength="30" />';  
  }
 </script>

Und das Problem ist, dass kein neues Inputfeld angezeigt wird, wenn ich ein Value auswähle.
Muss ich da irgendwie mit Ajax arbeiten?
 
Wenn Du dort jetzt einen Wert auswählst, musst Du auch das Formular in dem das Feld liegt abschicken. Erst dann (wenn das Formular abgeschickt wurde) kann PHP auch den POST-Wert auslesen. Ich sehe in deinem Code jedoch kein Formular und keinen Senden-Button.

AJAX musst Du hierfür nicht verwenden denke ich. Die Alternative wäre noch eine JavaScript-Funktion, aber wenn Du nicht mal mit dem jetzigen Code klar kommst, solltest Du damit nicht anfangen - auch wenn es sicherlich die besser Variante wäre als das jetzt.

Abgesehen davon hast Du hier jetzt noch ein = zuviel eingefügt. Wertzuweisungen in JavaScript geschehen wie bei PHP auch mit einem =. Also:

PHP:
var taetigkeit = "<?php echo $_POST["taetigkeit"]; ?>";
 
Werbung:
Du probierst aus ohne, dass dir selbst erstmal bewusst ist was Du machen willst. Ich hatte dir oben schon geschrieben, dass Du deinen Code nur hinsichtlich eines Formulars wohl anpassen musst. Und wenn Du es dynamischer haben willst, nimm JavaScript.
 
Ich möchte, dass wenn man etwas in einer SelectAuswahl auswählt ein neues Inptfeld kommt. Ich habe eine kleine functiondazu mit JS geschrieben die ich hier gepostet habe und bei mir erscheint kein neues Inputfeld.
1.Wieso nicht?
2. Kann man das ganze auch do machen, dass nach drücken eines Buttons ein neues Inputfeld erscheint.
Danke
webber979
 
Wenn Du diesen Code meinst ..

PHP:
Tätig in/als: <br />
<select name="taetigkeit">
<?php
foreach ($taetigarray as $taetigel) {
        if ($taetigel == $taetigkeit) {
          $gew4 = " selected='selected' ";
        } else {
          $gew4 = "";
        }
        echo "<option value='taetigel' $gew4>$taetigel</option>\n";
       }
?>
</select><br />
<?php
global $taetigkeit;
  if (!empty($taetigkeit)) {
   echo '<input type="text" name"taetigketname" size"30" maxlength"30" value" echo htmlspecialchars($taetigkeitname);" />';
} 

?>

.. dann fehlt bei diesem die Verarbeitung der Aktion des Nutzers (JavaScript) oder des Formularfeldes (PHP). Wie das beides geht wurde in den vorherigen Beiträgen schon erklärt.
 
Werbung:
Danke erstmal.
Wie ich dich verstanden habe kommt das Inputfeld erst beim Absenden dews Formulares. Ich hab jedoch versucht zu erreichen, daass das neue Inputfeld angezeigt wird uch ohne, dass das Formular abgesendet wird.
Naja Danke trotzdem.
webber979
 
Zurück
Oben