kostenloser Webspace werbefrei: lima-city


select options in get schreiben

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    unlikus

    unlikus hat kostenlosen Webspace.

    ich habe in einer for Schleife mit echo eine Tabelle erstellt in der letzten Spalten kommt ein ref="/tag/formular">Formular wo man in jeder Zeile zwicschen 4 Dingen wählen kann, also mit <select><option value und so weiter.
    jeztt möchte ich mit einem Anbsendne Buttom alle eingaben in get schrieben lassen, also r1=2&r2=3 uns so weiter.
    habe schon viel ausprobiert und gegoogelt aber nicht gefunden.
    Im notfall geht es auch mit post, aber mit einem submit.

    Beitrag zuletzt geändert: 1.1.2012 11:37:32 von unlikus
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. unlikus schrieb:
    ich habe in einer for Schleife mit echo eine Tabelle erstellt in der letzten Spalten kommt ein Formular wo man in jeder Zeile zwicschen 4 Dingen wählen kann, also mit <select><option value und so weiter.
    jeztt möchte ich mit einem Anbsendne Buttom alle eingaben in get schrieben lassen, also r1=2&r2=3 uns so weiter.
    habe schon viel ausprobiert und gegoogelt aber nicht gefunden.
    Im notfall geht es auch mit post, aber mit einem submit.
    weil ja so post wie get daten automatisch von einem formular behandelt werden, kann man nicht genau wissen, was eigentlich dein problem ist.
    wenn man auf submit klickt, je nach dem wo die daten hingeschickt weden, kannst du sie so ansehen:
    echo '<pre>' . print_r($_GET, true) . '</pre>';
    oder eben
    echo '<pre>' . print_r($_POST, true) . '</pre>';
  4. Autor dieses Themas

    unlikus

    unlikus hat kostenlosen Webspace.

    ich meinte wie die eizelenen options einen namen bekommen, mit name geht es irgentwie nicht und dann sollen alle mit einem input submit per get oder post an eine andere Seite geschickt werden
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    unlikus schrieb:
    ich meinte wie die eizelenen options einen namen bekommen, mit name geht es irgentwie nicht und dann sollen alle mit einem input submit per get oder post an eine andere Seite geschickt werden
    Die einzelnen Options haben keinen eigenen Namen!!!
    Das select hat einen Namen, die options haben einen Wert. Wenn das jetzt abgeschickt wird bekommt der Name vom select den Wert von der ausgewählten option. Wozu sollten die options einen eigenen Namen haben?
  6. Ich hoffe du weißt wie die Formulare funktionieren: http://www.w3schools.com/html/html_forms.asp

    Hier wird das <Select> erklärt: http://de.selfhtml.org/html/formulare/auswahl.htm

    Du kannst die Selects mit verschiedenem Namen schreiben:

    <form action="get.php" method="GET">
                <select name="select1">
                              <option value="option1"> Option 1 </option>
                              <option value="option2"> Option 2 </option>
                </select>
    
                <select name="select2">
                              <option value="option1"> Option 1 </option>
                              <option value="option2"> Option 2 </option>
                </select>
    
               <input type="submit" value="Senden">


    Das GETest du dann in der "get.php" mit
    $select1 = $_Get['select1'];
    $select2 = $_Get['select2'];

    Dieses GET hat dann den Wert des vorher gesendeten value der ausgewählten option.

    MfG

    Beitrag zuletzt geändert: 1.1.2012 14:31:52 von copynpaste
  7. Hallo

    Wenn Du in jeder Zeile ein eigenes Formular hast
    dann kannst Du ein hidden-field mit der ID (Zeilen-Nummer) machen
    dann weisst Du nach Absenden des Formulars, aus welcher Zeile es kommt

    BSP Code für jeweils letzte Spalte in der Tabellen-Zeile:

    <form name="form1" method="get" action="">
    	Wie gef&auml;llt Dir das ?<br>
    	<select name="wertung">
    		<option value="1">Ich liebe es</option>
    		<option value="2">echt gut</option>
    		<option value="3">naja geht so</option>
    		<option value="4">ist doch doof</option>
    	</select>
    	<br>
    	<input type="hidden" name="zeile" value="1">
    	<input type="submit" name="go" value="Abschicken">
    </form>



    Wenn es aus einer Schleife mit Zähler kommt,
    dann kannst Du im Hidden-Field jeweils den Zähler setzen

    echo "<table> \r\n"; 
    
    $i=1; 
    foreach($data as $item) { 
    
    echo "<tr> \r\n"; 
    echo "<td> \r\n"; 
    // hier Tabellen-Zeile mit $item Inhalt in erster Spalte 
    echo "</td> \r\n"; 
    
    echo "<td> \r\n"; 
    // und dann Zeilen-Zähler im Formular in der zweiten Spalte 
    ?>
    <form name="form1" method="get" action="">
    Wie gef&auml;llt Dir das ?<br>
    <select name="wertung">
    	<option value="1">Ich liebe es</option>
    	<option value="2">echt gut</option>
    	<option value="3">naja geht so</option>
    	<option value="4">ist doch doof</option>
    </select>
    <br>
    <input type="hidden" name="zeile" value="<?php echo $i; ?>">
    <input type="submit" name="go" value="Abschicken">
    </form>
    <?php
    echo "</td> \r\n"; 
    echo "</tr> \r\n"; 
    
    }
    
    echo "</table> \r\n";


    dann bekommst Du Ergebnis wie z.B.:

    if ( !empty($_GET['zeile']) ) { 
    $ergebnis = urldecode($_GET['wertung']); 
    echo "<br>Bewertung f&uuml;r Zeile ".$_GET['zeile']." ist: ".$ergebnis."\r\n"; 
    }


    ist zwar hier Spaghetti-Code, aber nur zur Veanschaulichugg des Prinzips

  8. Autor dieses Themas

    unlikus

    unlikus hat kostenlosen Webspace.

    Danke, hat mir wirklich sehr geholfen.

    2 Fragen zum letzten Cdodebeispiel:
    Was bedeutet bei echo \r?
    Was ist foreach?
  9. unlikus schrieb:
    Danke, hat mir wirklich sehr geholfen.

    2 Fragen zum letzten Cdodebeispiel:
    Was bedeutet bei echo \r?
    Was ist foreach?
    carriage return es gibt drei zeilenenden in der it, \r gibt es nur bei windows. aus dem grund sollte man sowas auch nicht hardcoded verwenden. php hat dafür eine konstante, die automatisch richtig ist: PHP_EOL
  10. Hallo

    ja, das \r kannst Du auch weglassen,
    ich mache es halt immer mit rein, weil ich auf Windows arbeite
    und bei manchen Webspaces, wenn man Online erstellte Dateien per ftp abholt,
    dann wird nur so der Umbruch in der abgeholten Datei (unter Win) auch angezeigt
    meistens geht eas aber auch mit nur \n (für Zeilnumbruch im Quellcode)

    zu foreach()

    damit gehst Du jedes Element in einem Array durch,egal wieviele Elemente es hat
    dadurch erspart man sich einen count() für eine for-Schleife und ist unabhängig von der Anzahl

    siehe dazu: http://php.net/manual/de/control-structures.foreach.php


    Beispiel: (zweidimensionales Array)

    <?php
    // ------------------------------------------ 
    
    $spielerdaten = array(
    array('7', 'Thomas', '22', 'Ritter'),
    array('5', 'Markus', '4', 'Monster'),
    array('3', 'Johannes', '81', 'Ritter'),
    array('2', 'Barbara', '35', 'Der Adel')
    ); 
    
    
    // ------------------------------------------ 
    
    $i = 1; 
    
    foreach($spielerdaten as $spieler) { 
    
    echo "<br />Nummer: ".$i."\r\n"; 
    echo "<br />ID: ".$spieler[0]."\r\n";
    echo "<br />Name: ".$spieler[1]."\r\n";
    echo "<br />Punkte: ".$spieler[2]."\r\n";
    echo "<br />Team: ".$spieler[3]."\r\n";
    echo "<br />\r\n";
    
    $i++; 
    
    } 
    
    // ------------------------------------------ 
    ?>



    Ausgabe:

    Nummer: 1
    ID: 7
    Name: Thomas
    Punkte: 22
    Team: Ritter
    
    Nummer: 2
    ID: 5
    Name: Markus
    Punkte: 4
    Team: Monster
    
    Nummer: 3
    ID: 3
    Name: Johannes
    Punkte: 81
    Team: Ritter
    
    Nummer: 4
    ID: 2
    Name: Barbara
    Punkte: 35
    Team: Der Adel


    Wenn Du die Daten aus MySQL holst und mit mysql_fetch_assoc() in Array legst
    dann kannst Du auch direkt die Spalten-Namen als KEY verwenden

    $res = mysql_query($sql); 
    $data = array(); 
    while($row = mysql_fetch_assoc($res)) { 
    $data[] = $row; 
    }
    
    
    foreach($data as $item) { 
    
    ## echo "<pre>\r\n"; 
    ## print_r($item);
    ## echo "</pre>\r\n"; 
    
    echo "<br />ID: ".$item['id']."\r\n";
    echo "<br />Name: ".$item['name']."\r\n";
    echo "<br />Punkte: ".$item['points']."\r\n";
    echo "<br />Team: ".$item['team']."\r\n";
    echo "<br />\r\n";
    
    }


    nur ein Beispiel, die Spalten-Namen (KEYs) musst Du natürlich selber kennen
    :)


    Beitrag zuletzt geändert: 1.1.2012 17:58:51 von favon
  11. favon schrieb:
    ja, das \r kannst Du auch weglassen,
    ich mache es halt immer mit rein, weil ich auf Windows arbeite
    und bei manchen Webspaces, wenn man Online erstellte Dateien per ftp abholt,
    dann wird nur so der Umbruch in der abgeholten Datei (unter Win) auch angezeigt
    meistens geht eas aber auch mit nur \n (für Zeilnumbruch im Quellcode)
    also nochmals! wenn in den sourcen überall sowas steht (beispiel):
    <?php
    // ...
    $text = 'das ist etwas text mit END OF LINE' . PHP_EOL;
    // ...
    und du hin und her ziehst auf zig servern mehrmals am tage, ist es auch egal, auf einem un*x wird dann \n ausgegeben und auf win \r\n, ohne dass du etwas machen musst. (sogar auf mac ist es dann richtig. und genau das nennt sich 'nicht hartkodiert' programmiert. man sollte mit allen angebotenen features von php leben! ;)
  12. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    hemiolos schrieb:
    favon schrieb:
    ja, das \r kannst Du auch weglassen,
    ich mache es halt immer mit rein, weil ich auf Windows arbeite
    und bei manchen Webspaces, wenn man Online erstellte Dateien per ftp abholt,
    dann wird nur so der Umbruch in der abgeholten Datei (unter Win) auch angezeigt
    meistens geht eas aber auch mit nur \n (für Zeilnumbruch im Quellcode)
    also nochmals! wenn in den sourcen überall sowas steht (beispiel):
    <?php
    // ...
    $text = 'das ist etwas text mit END OF LINE' . PHP_EOL;
    // ...
    und du hin und her ziehst auf zig servern mehrmals am tage, ist es auch egal, auf einem un*x wird dann \n ausgegeben und auf win \r\n, ohne dass du etwas machen musst. (sogar auf mac ist es dann richtig. und genau das nennt sich 'nicht hartkodiert' programmiert. man sollte mit allen angebotenen features von php leben! ;)
    Das ist schon richtig, aber wenn es nur um die Ausgabe von HTML-Code geht ist es föllig egal ob da \r, \n oder \r\n steht. HTML ignoriert Zeilenumbrüche, dabe ist es egal wie die jetzt aussehen. Du kannst genausogut ein Leerzeichen machen.
    Das Einzige wo das eine Rolle spielen könnte ist bei der Ausgabe von Textdateien. Aber auch da sollte jeder Browser in der Lage sein Zeilenumbrüche in das Systemformat zu bringen.
  13. hackyourlife schrieb:
    ...Das ist schon richtig, aber wenn es nur um die Ausgabe von HTML-Code geht ist es föllig egal ob da \r, \n oder \r\n steht. HTML ignoriert Zeilenumbrüche, dabe ist es egal wie die jetzt aussehen. Du kannst genausogut ein Leerzeichen machen.
    Das Einzige wo das eine Rolle spielen könnte ist bei der Ausgabe von Textdateien. Aber auch da sollte jeder Browser in der Lage sein Zeilenumbrüche in das Systemformat zu bringen.
    was das ganze klimbimm macht ist kurz demonstriert:
    < ?php
    $select1 = '<select>';
    for($i = 1; $i <= 10; $i++) {
      $select1 .= "<option>$i</option>";
    }
    $select1 .= '</select>';
    $res = '<h4>ohne steuerzeichen</h4><pre>' . htmlentities($select1) . '</pre>';
    
    $select2 = '<select>' . PHP_EOL;
    for($i = 1; $i <= 10; $i++) {
      $select2 .= "\t<option>$i</option>" . PHP_EOL;
    }
    $select2 .= '</select>' . PHP_EOL;
    $res .= '<hr /><h4>mit steuerzeichen</h4><pre>' . htmlentities($select2);
    
    exit('' . $res);
    und wenn es dir keinen unterschied ausmacht, kann ich damit auch leben ;)
    allerdings! wenn man sich im eigenen, generierten html-code auskennen will, hilft die zweite methode - nach meiner durchgeknallter meinung - schon enorm. oder bin ich da ganz extrem mit meiner meinung?

    ja. und was browser mit html code machen, ist mir auch nicht so klar wie dir. ich habe es gehört, es sollen unterschiede geben ;)

    Beitrag zuletzt geändert: 2.1.2012 9:49:54 von hemiolos
  14. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!