ilch Forum » Allgemein » HTML, PHP, SQL,... » Bei select auswahl Input feld freigeben

Geschlossen
  1. #1
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    Ich würde gern machen wollen das wenn ich zwischen Straße und Wohnort auswähle das dann bei

    Wohnort ein neues Input feld kommt

    PLZ / Wohnort

    wenn ich Straße auswähle soll anstatt PLZ / Wohnort

    Straße / Hausnr kommen

    Wie setzte ich dies mit Php um? oder andere Möglichkeit?

    Mit der If abfrage gehts nicht da er bei der auswahl ja noch nicht weiß ob 1 oder 2?
    <form action="index.php?menu-save" method="POST" name="add">
                   <table width="100%" border="0" cellspacing="2" cellpadding="2">
              	<tr>
        		  <td width="31%"><b>Name:</b></td>
        		  <td><input name="Name" type="text" value="" size="31" maxlength="50"></td>
      		</tr>
              	<tr>
        		  <td><b>Auswahl:</b></td>
        		  <td><select name="Zuordnung" size="1">
                       	<option value="1">Wohnort</option>
                             <option value="2">Straße</option>
                           </select></td>
      		</tr>';
                   if ($Zuordnung = 1) {
              	echo '<tr>
        		  <td><b>PLZ / Wohnort:</b></td>
        		  <td><input name="Anzahl" type="text" value="" size="3" maxlength="5"> <input name="Ziel" type="text" value="" size="25" maxlength="50"></td>
      		</tr>';
                   }elseif ($Zuordnung = 2) {
              	echo '<tr>
        		  <td><b>Straße / Nr.:</b></td>
        		  <td><input name="Anzahl" type="text" value="" size="25" maxlength="2"> <input name="Ziel" type="text" value="" size="3" maxlength="50"></td>
      		</tr>';
                   }
                     echo '<tr>
        		  <td colspan="3"><br><b>Beschreibung:</b></td>
      		</tr>
      		<tr>
        		  <td colspan="3"><textarea name="Beschreibung" cols="65" rows="10" id="Beschreibung"></textarea></td>
      		</tr>
                     </table>
                     <input type="submit" style="border: solid 1px black; background-color:#cfcfcf; margin-left:400px;" name="add" border="0" value="Hinzufügen"></form>



    Zuletzt modifiziert von Siggi am 18.02.2013 - 13:14:44
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    s4sch4 Mitglied
    Registriert seit
    09.12.2007
    Beiträge
    183
    Beitragswertungen
    5 Beitragspunkte
    Das machst du mit nem javascript dann:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="de" xml:lang="de">
    <head>
    <script type="text/javascript">
    <!--
    
    	
    function addFields() {
    	
        var selectValue = document.getElementById('select').value;
        document.getElementById('wohn').style.display='none';
    	document.getElementById('stra').style.display='none';
    	  
        if(selectValue == 1) {
    	
            document.getElementById('wohn').style.display='inline';
    		document.getElementById('stra').style.display='none';
    	 
        } else if(selectValue == 2) {
    	 	
    		document.getElementById('wohn').style.display='none';
            document.getElementById('stra').style.display='inline';
    	 
        } else {
    	 	
    		document.getElementById('wohn').style.display='none';
            document.getElementById('stra').style.display='none';
    	 
        }
    
    }	
    	
    -->
    </script>
    
    <style type="text/css">
    <!--
    
    .dis_none {
    display:none;
    width:0px;
    height:0px;
    }
    
    -->
    </style>
    </head>
    <body>
    <form action="index.php?menu-save" method="post" name="add">
    
        <table width="100%" border="0" cellspacing="2" cellpadding="2">
    	
    		<tr>
    		  <td width="31%"><b>Name:</b></td>
    		  <td><input name="Name" type="text" value="" size="31" maxlength="50"></td>
            </tr>
    		
            <tr>
                  <td><b>Auswahl:</b></td>
                  <td>
    			  	  <select name="Zuordnung" size="1" id="select" onchange="addFields()">
    				  
    					  <option value="0">Bitte w&auml;hlen</option>
                          <option value="1">Wohnort</option>
                          <option value="2">Straße</option>
    					  
                      </select>
    			  </td>
            </tr>
    		
            <tr>
                  <td colspan="2">
    			  
    			  	<div id="wohn" class="dis_none">
    					<b>PLZ / Wohnort:</b><br />
    					<input name="Anzahl" type="text" value="" size="3" maxlength="5"> <input name="Ziel" type="text" value="" size="25" maxlength="50">
    			  	</div>
    				
    			
    			  	<div id="stra" class="dis_none">
    					<b>Straße / Nr.:</b><br />
    					<input name="Anzahl" type="text" value="" size="25" maxlength="2"> <input name="Ziel" type="text" value="" size="3" maxlength="50">
    				</div>
    				
    			  </td>
            </tr>
    	
    		<tr>
                  <td colspan="3"><br><b>Beschreibung:</b></td>
            </tr>
    		
            <tr>
                  <td colspan="3"><textarea name="Beschreibung" cols="65" rows="10" id="Beschreibung"></textarea></td>
            </tr>
        </table>
    	
        <input type="submit" style="border: solid 1px black; background-color:#cfcfcf; margin-left:400px;" name="add" border="0" value="Hinzufügen">
    	
    </form>
    </body>
    </html>


    Bitteschön, musst nur noch einbauen, sprich das script kommt in den headbereich deines designtemplates, das css hauste in deine css datei halt und das formular ersetzen, noch bissl anpassen evtl., fertig.

    Gruß Sascha
    Visit me on: externer Link
    Visit my Clan: externer Link
    Mein ilch Modul: Höhrercharts v0.8 für OnlineRadios
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    s4sch4 Mitglied
    Registriert seit
    09.12.2007
    Beiträge
    183
    Beitragswertungen
    5 Beitragspunkte
    oh, ich hab grad gesehen du hast noch einen anderen üblen Fehler drin, ohne php kenntnisse wirst du das nicht wegbekommen...

    du hast doppelte input names, das führt unweigerlich zu einem Fehler, wenn man strasse eingibt kommen die informationen an allerdings wird es bei wohnort nicht funktionieren.

    änder die 2ten inputs um und häng ne 2 dran. Und maxlenght is auch falsch, das erste machste 50 beim 2. 4

    dann musst du in den php teil deines scriptes, wenn du es nicht kannst, dann poste mir mal deinen php teil...


    Zuletzt modifiziert von s4sch4 am 18.02.2013 - 16:15:56
    Visit me on: externer Link
    Visit my Clan: externer Link
    Mein ilch Modul: Höhrercharts v0.8 für OnlineRadios
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    Das war nur ein bsp da ich da gerade etwas aufbaue ^^ aber nun wo du es sags da er ja zweimal das gleiche hat.

    Naja müsste ich halt machen wenn Ziel2 = so und so und wenn Ziel1 = so

    if (isset($add)) {
       $sql = "INSERT INTO bewebe (Titel,Zuordnung,Stufe,Beschreibung,Belohnung,Ziel,Anzahl)
                VALUES
                ('".strip_tags(mysql_escape_string($Title))."',
                 '".strip_tags(mysql_escape_string($Zuordnung))."',
                 '".strip_tags(mysql_escape_string($Stufe))."',
                 '".strip_tags(mysql_escape_string($Beschreibung))."',
                 '".strip_tags(mysql_escape_string($Belohnung))."',
                 '".strip_tags(mysql_escape_string($Ziel))."',
                 '".strip_tags(mysql_escape_string($Anzahl))."'
                 )";
            mysql_query($sql) OR die(mysql_error());
    
    echo '<center>Erfolgreich hinzugefügt.';
    }



    Zuletzt modifiziert von Siggi am 18.02.2013 - 16:43:01
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    s4sch4 Mitglied
    Registriert seit
    09.12.2007
    Beiträge
    183
    Beitragswertungen
    5 Beitragspunkte
    VOR:
    if (isset($add)) {



    folgendes hinzufügen:
    $Anzahl2 = escape($_POST['Anzahl2'], string);
    $Ziel2 = escape($_POST['Ziel2'], integer); 
    
    if(!empty($Ziel2)) { $Ziel = $Ziel2; }
    if(!empty($Anzahl2)) { $Anzahl = $Anzahl2; }



    Dann das javascript muss auch noch etwas geändert werden:

    ersetze die function addFields:

    function addFields() {
    	
        var selectValue = document.getElementById('select').value;
    	  
        if(selectValue == 1) {
    	
            document.getElementById('wohn').style.display='inline';
    		document.getElementById('stra').style.display='none';
    		document.getElementById('Anzahl2').value='';
    		document.getElementById('Ziel2').value='';
    	 
        } else if(selectValue == 2) {
    	 	
    		document.getElementById('wohn').style.display='none';
            document.getElementById('stra').style.display='inline';
    		document.getElementById('Anzahl').value='';
    		document.getElementById('Ziel').value='';
    	 
        } else {
    	 	
    		document.getElementById('wohn').style.display='none';
            document.getElementById('stra').style.display='none';
    		document.getElementById('wohn').value='';
    		document.getElementById('stra').value='';
    	 
        }
    
    }



    zum Schluss noch das Formular, das muss auch nochmal angepasst werden, einfach ersetzen durch deins:

    <form action="index.php?menu-save" method="post" name="add">
    
        <table width="100%" border="0" cellspacing="2" cellpadding="2">
    	
    		<tr>
    		  <td width="31%"><b>Name:</b></td>
    		  <td><input name="Name" type="text" value="" size="31" maxlength="50"></td>
            </tr>
    		
            <tr>
                  <td><b>Auswahl:</b></td>
                  <td>
    			  	  <select name="Zuordnung" size="1" id="select" onchange="addFields()">
    				  
    					  <option value="0" selected="selected">Bitte w&auml;hlen</option>
                          <option value="1">Wohnort</option>
                          <option value="2">Straße</option>
    					  
                      </select>
    			  </td>
            </tr>
    		
            <tr>
                  <td colspan="2">
    			  
    			  	<div id="wohn" class="dis_none">
    					<b>PLZ / Wohnort:</b><br />
    					<input name="Anzahl" type="text" value="" size="3" maxlength="5" id="Anzahl"> <input name="Ziel" type="text" value="" size="25" maxlength="50" id="Ziel">
    			  	</div>
    				
    			
    			  	<div id="stra" class="dis_none">
    					<b>Straße / Nr.:</b><br />
    					<input name="Anzahl2" type="text" value="" size="25" maxlength="50" id="Anzahl2"> <input name="Ziel2" type="text" value="" size="3" maxlength="5" id="Ziel2" />
    				</div>
    				
    			  </td>
            </tr>
    	
    		<tr>
                  <td colspan="3"><br><b>Beschreibung:</b></td>
            </tr>
    		
            <tr>
                  <td colspan="3"><textarea name="Beschreibung" cols="65" rows="10" id="Beschreibung"></textarea></td>
            </tr>
        </table>
    	
        <input type="submit" style="border: solid 1px black; background-color:#cfcfcf; margin-left:400px;" name="add" border="0" value="Hinzufügen">
    	
    </form>


    fertig! ^^

    Aber wie willst du in der Ausgabe nachher zwischen Wohnort und Strasse unterscheiden? Oder brauchst du das nich?


    Zuletzt modifiziert von s4sch4 am 18.02.2013 - 19:26:54
    Visit me on: externer Link
    Visit my Clan: externer Link
    Mein ilch Modul: Höhrercharts v0.8 für OnlineRadios
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    Beim auslesen checkt er was ausgewaehlt wurde ob wohn oder str und gibt dies dann dort aus.

    oehm scheint alles zu gehen bis auf Ziel2 da schreibt er mir nix rein und finde so gerade auch nicht den fehler wieso es so ist


    Zuletzt modifiziert von Siggi am 18.02.2013 - 19:51:09
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    s4sch4 Mitglied
    Registriert seit
    09.12.2007
    Beiträge
    183
    Beitragswertungen
    5 Beitragspunkte
    ups, dann änder man das integer in string um, könnte daran liegen...

    also bei dieser zeile:
    $Ziel2 = escape($_POST['Ziel2'], integer);
    Visit me on: externer Link
    Visit my Clan: externer Link
    Mein ilch Modul: Höhrercharts v0.8 für OnlineRadios
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    Ja danke geht alles wenn ich das richtig sehe
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten