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

Input wird nicht übernommen/ausgegeben

prajuritbs

Mitglied
Hallo,
wie der Title schon sagt, habe ich das Probelm das ein Wert der per Input aufgenommen wird, nachdem ich Ihn einer Variablen zugeordnet habe, nicht mehr ausgegeben wird.

Dies liegt jedoch nicht an der Zuordnung sondern anscheinend an dem "onsubmit" Befehl.
Denn lasse ich diesen auf dem Wert "" , wird der Input-Wert unten ausgegeben.

Jedoch möchte ich erst den Code, in den der Input-Wert eingefügt wird, erst nach dem Submit anzeigen lassen und nicht davor, da sonst jmd. verwirt sein könnte und den Code ohne den eingefügten Input-Wert benutzen will.

Hier mal der Code:

PHP:
<form enctype="multipart/form-data" name="generator" method="post" action="<?=htmlspecialchars($_SERVER[PHP_SELF]); ?>#overview" onsubmit="showHideLayer('codee')
return(false)" > 

<table> 
<tr><td>URL des Bildes eingeben:</td> 
<td><input type="text" name="bgimg" value="<?=$_POST['bgimg']; ?>" /></td></tr> 

<tr><td>Hintergrundbild senden: </td> 
<td><input name="senden" type="submit" value="Senden" /></td></tr> 
</table> 
 </form> 

            <?php 
            $bgimg = $_POST['bgimg']; 

            echo"Code f&uuml;r Ihr Hintergrundbild:<br />"; 

            echo"<div id=\"codee\" style=\"display:none;\"> 
                 <div class=\"alert-message warning fade in\" data-alert=\"alert\" > 
                 @namespace url(http://www.w3.org/1999/xhtml);<br /> 
                 @-moz-document domain(\"spickmich.de\") { <br /> 
                 body { <br /> 
                 background-image: url(<span style=\"color: #9933cc;\">$bgimg</span>); <br /> 
                 font-size: 10pt;   <br /> 
                 margin: 0px;   <br /> 
                 padding: 0px;    <br /> 
                 text-align: center;}}</div></div>"; 
            ?>

Danke für eure Hilfe, ich weiß nämlich wirklich nicht weiter.

EDIT: Ich weiß nicht ob es euch etwas bringt, aber mir ist eben aufgefallen wenn ich bei onsubmit: return(true) mache, wird der wert ausgegebn, jedoch schließt sich der "HidenLayer" nach einer Sekunde wieder.
 
Werbung:
Durch "return false" im onsubmit wird der Submit-Vorgang unterbrochen und das Formular gar nicht abgeschickt. Daher gibt es auch keine Werte im $_POST, die du abfragen kannst.
Wie du schon richtig bemerkt hat, bewirkt ein "return true", dass das Formular tatsächlich abgeschickt, und die Seite neu geladen wird.

Mein Vorschlag wäre jetzt folgender: Schreibe ein if-Abfrage, in der du überprüfst, ob die $_POST-Variable existiert und etwas drin steht (bedeutet: Das Formular wurde abgeschickt). Falls ja, gib den Code für den Layer aus und blende ihn ein, andernfalls zeige nur das Formular an. Dadurch wird das Javascript im onsubmit obsolet und du kannst darauf verzichten.
 
Hi, dass hört sich gut an nur muss ich dir leider sagen, dass das was im Code ist schon das maximum meiner Php-Kenntnisse ist. Hättest du da vielleicht ein Beispiel ?
Also wie die If Abfrage aussieht.
Oder wenn es nicht zu viel ist also 1 oder 2 Zeilen wäre ich dir mehr als dankbar wenn du es mir schreiben könntest.
Du kannst dir ga nicht vorstellen wie dankbar ich dir wäre :)
 
Werbung:
PHP:
if (isset($_POST['bgimg']) && $_POST['bgimg'] != '') {
  //Hier dein Layer ausgeben
}

Das "display: none" im style-Attribut des Layers lässt du dann natürlich weg.
 
Und wo einfügen ? -> Vor der Variable ?

Und dann onsubmit="" ?

Es wäre echt super net wenn du den Teil einfach da einfügst wo es rein gehört und das rausnimmst, was raus gehört.
Sry, aber in Sachen Php bin ich einfach noch Laie .

Aber in HTML und CSS kann ich dir dann immer helfen :)
 
Hab deinen Code erweitert:

PHP:
<?php

  echo"Code f&uuml;r Ihr Hintergrundbild:<br />"; 
  
  if (isset($_POST['bgimg']) && $_POST['bgimg'] != '') {
    $bgimg = $_POST['bgimg'];
    echo"<div id=\"codee\">
      <div class=\"alert-message warning fade in\" data-alert=\"alert\" > 
                 @namespace url(http://www.w3.org/1999/xhtml);<br /> 
                 @-moz-document domain(\"spickmich.de\") { <br /> 
                 body { <br /> 
                 background-image: url(<span style=\"color: #9933cc;\">$bgimg</span>); <br /> 
                 font-size: 10pt;   <br /> 
                 margin: 0px;   <br /> 
                 padding: 0px;    <br /> 
                 text-align: center;}}</div></div>";
   }        
 
             
            ?>

Das "onsubmit" im form-Tag kannst du dann komplett rauswerfen. Das war ja ursprünglich dafür vorgesehen, dass beim Absenden des Formulars der versteckte Layer ausgegeben wird. Dies übernimmt jetzt aber PHP selbst.
 
Werbung:
Zurück
Oben