Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 68

Thema: [HTML] Auswahlmenü speichern lassen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Zitat Zitat von Arvan Beitrag anzeigen
    Ich habe das mal versucht, aber da gab es irgend ne komische Warnung im Quelltext:

    HTML-Code:
    <form target="_blank" action="http://eu.wowarmory.com/character-sheet.xml" accept-charset="UTF-8">
    
    <big>Realm:</big><br>
    
    <?php
    setcookie('r', $_POST['r']);
    ?> 
    
    <select size="1" style="width: 235px; height: 20px" name="$_COOKIES['r']">
    
    
    <optgroup label="Deutsch">
        <option value="Aegwynn">Aegwynn</option>
        <option value="Alexstrasza">Alexstrasza</option>
        <option value="Alleria">Alleria</option>
        <option value="Aman'Thul">Aman'Thul</option>
        <option selected value="Ambossar">Ambossar</option>
        <option value="Anetheron">Anetheron</option>
    EDIT: Hoppla, ich glaube durch "option selected" is das klar, oder?^^ hatte aber noch keine zeit das auszuprobieren.
    Du musst eigentlich nur noch eine Abfrage in jede <option> einbauen:
    PHP-Code:
    <option value="Ambossar" <?php if($_COOKIES['r'] == "Ambossar") { "selected" }?> >Ambossar</option>

  2. #2
    Zitat Zitat von rgb Beitrag anzeigen
    Du musst eigentlich nur noch eine Abfrage in jede <option> einbauen:
    PHP-Code:
    <option value="Ambossar" <?php if($_COOKIES['r'] == "Ambossar") { "selected" }?> >Ambossar</option>
    wtf, ist die Syntax korrekt? Ich würde da ja echo "selected"; schreiben, alleine schon, weils sauberer ist.

  3. #3

    Arvan Gast
    Ich hab das ganze jetzt so gemacht:

    HTML-Code:
    <form target="_blank" action="http://eu.wowarmory.com/character-sheet.xml" accept-charset="UTF-8">
    
    <big>Realm:</big><br>
    
    
    <select size="1" style="width: 235px; height: 20px" name="$_COOKIES['r']">
    
    <?php
    setcookie('r', $_POST['r']);
    ?>
    
    <optgroup label="Deutsch">
        <option value="Aegwynn" <?php if($_COOKIES['r'] == "Aegwynn") { echo 'selected="selected"'; }?> >Aegwynn</option>
        <option value="Alexstrasza" <?php if($_COOKIES['r'] == "Alexstrasza") { echo 'selected="selected"'; }?> >Alexstrasza</option>
        <option value="Alleria" <?php if($_COOKIES['r'] == "Alleria") { echo 'selected="selected"'; }?> >Alleria</option>
    Problem: Das Ergebnis der Adressleiste, es landet ein Teil des PHP-Codes dadrin:

    Code:
    http://eu.wowarmory.com/character-sheet.xml?%24_COOKIES%5B%27r%27%5D=Die+Nachtwache&n=hallo
    Es sollte jedoch so heißen:

    Code:
    http://eu.wowarmory.com/character-sheet.xml?r=Die+Nachtwache&n=hallo

  4. #4
    Dann probier es doch mal mit name="r" statt name="$_COOKIES['r']".
    Zudem würd ich zum form noch method="post" hinzufügen.

  5. #5

    Arvan Gast
    Zitat Zitat von Drakes Beitrag anzeigen
    Dann probier es doch mal mit name="r" statt name="$_COOKIES['r']".
    Zudem würd ich zum form noch method="post" hinzufügen.
    Okay, das funktioniert!

    Aber nach schließen des Fenster wird wieder alles zurückgesetzt, das wollte ich mit dem Cookie ja verhindern... (das war aber auch schon vorher so)


    Nun ich habe so ne Warnung im Quelltext (komischerweise nur da):

    Code:
    <b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /var/www/web39/web/wow/beta/index.php:17) in <b>/var/www/web39/web/wow/beta/index.php</b> on line <b>98</b><br />

  6. #6
    Dein setcookie() muss an den Anfang der Datei. Und wenn du willst, dass der Cookie auch noch nach dem Schließen des Browsers erhalten bleibt, musst du eine Zeitangabe mitgeben:

    PHP-Code:
    <?php
    setcookie
    ('r'$_POST['r'], time() + 2592000);
    ?><form target="_blank" action="http://eu.wowarmory.com/character-sheet.xml" accept-charset="UTF-8">

    <big>Realm:</big><br>

    <select size="1" style="width: 235px; height: 20px" name="$_COOKIES['r']">

    <optgroup label="Deutsch">
        <option value="Aegwynn" <?php if($_COOKIES['r'] == "Aegwynn") { echo 'selected="selected"'; }?> >Aegwynn</option>
        <option value="Alexstrasza" <?php if($_COOKIES['r'] == "Alexstrasza") { echo 'selected="selected"'; }?> >Alexstrasza</option>
        <option value="Alleria" <?php if($_COOKIES['r'] == "Alleria") { echo 'selected="selected"'; }?> >Alleria</option>
    2592000 Sekunden entsprechen 30 Tagen. Die Zeit kannst du natürlich auch anpassen.

  7. #7

    Arvan Gast
    Mhhh... auch genauso wie du es geschrieben geht es nicht, ich schließe den Browser ja noch nicht einmal, es kommt ein Cookie zu stande (laut Firefox, wird keins erstellt, natürlich vorsichtshalber im IE geprüft, selber Fehler)

    Ich habe bewusst aus
    HTML-Code:
    <select size="1" style="width: 235px; height: 20px" name="$_COOKIES['r']">
    
    <select size="1" style="width: 235px; height: 20px" name="r">
    gemacht, weil sonst $_COOKIES['r'] mit in die Adressleiste kommt und somit kein Ergebnis zu stande kommt. (Aber es geht mit beidem Methoden nicht)

  8. #8
    So sollte es funktionieren:
    PHP-Code:
    <?php
    if(count($_POST)) {
        
    setcookie('r'$_POST['r'], time() + 2592000);
    }
    ?><form action="http://eu.wowarmory.com/character-sheet.xml" accept-charset="UTF-8" method="post">

    <big>Realm:</big><br>

    <select size="1" style="width: 235px; height: 20px" name="r">

    <optgroup label="Deutsch">
        <option value="Aegwynn" <?php if($_COOKIES['r'] == "Aegwynn") { echo 'selected="selected"'; }?> >Aegwynn</option>
        <option value="Alexstrasza" <?php if($_COOKIES['r'] == "Alexstrasza") { echo 'selected="selected"'; }?> >Alexstrasza</option>
        <option value="Alleria" <?php if($_COOKIES['r'] == "Alleria") { echo 'selected="selected"'; }?> >Alleria</option>

  9. #9

    Arvan Gast
    Moin,

    hab ich probiert und geht auch nicht >.<

    Müsste nach dem Aufruf oder abschicken, nicht ein Cookie gespeichert werden, wieso wird mir das im Browser nicht aufgeführt (alle anderen werden auch aufgeführt) Hab auch alles erlaubt, so isses ja nicht.

    Hat jemand da ne Idee?

  10. #10
    Bei mir funktioniert es mit diesem Code:
    PHP-Code:
    <?php
    if(isset($_POST['r'])) {
        
    setcookie('r'$_POST['r'], time() + 2592000);
    }
    ?><form action="http://eu.wowarmory.com/character-sheet.xml" accept-charset="UTF-8" method="post">

    <big>Realm:</big><br>

    <select size="1" style="width: 235px; height: 20px" name="r">

    <optgroup label="Deutsch">
        <option value="Aegwynn" <?php if($_REQUEST['r'] == "Aegwynn") { echo 'selected="selected"'; }?> >Aegwynn</option>
        <option value="Alexstrasza" <?php if($_REQUEST['r'] == "Alexstrasza") { echo 'selected="selected"'; }?> >Alexstrasza</option>
        <option value="Alleria" <?php if($_REQUEST['r'] == "Alleria") { echo 'selected="selected"'; }?> >Alleria</option>

  11. #11
    Zitat Zitat von dead_orc Beitrag anzeigen
    wtf, ist die Syntax korrekt? Ich würde da ja echo "selected"; schreiben, alleine schon, weils sauberer ist.
    Achja... stimmt. Hab lange nichts mehr gemacht, bin aus der Uebung. >.<

  12. #12
    So jetzt, aber

    PHP-Code:
    <?php
    if(isset($_POST['realm'])) {
        
    setcookie('realm'$_POST['realm'], time() + 2592000);
    }
    ?><form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

    <big>Realm:</big><br>

    <select size="1" style="width: 235px; height: 20px" name="realm">
    <optgroup label="Deutsch">
        <option value="Aegwynn" <?php if($_REQUEST['realm'] == "Aegwynn") { echo 'selected="selected"'; }?> >Aegwynn</option>
        <option value="Alexstrasza" <?php if($_REQUEST['realm'] == "Alexstrasza") { echo 'selected="selected"'; }?> >Alexstrasza</option>
        <option value="Alleria" <?php if($_REQUEST['realm'] == "Alleria") { echo 'selected="selected"'; }?> >Alleria</option>
    </optgroup>
    </select>

    <input type="submit" value="Abschicken">
    </form>

  13. #13

    Arvan Gast
    Zitat Zitat von Xardas der Dunkle Beitrag anzeigen
    So jetzt, aber

    PHP-Code:
    <?php
    if(isset($_POST['realm'])) {
        
    setcookie('realm'$_POST['realm'], time() + 2592000);
    }
    ?><form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

    <big>Realm:</big><br>

    <select size="1" style="width: 235px; height: 20px" name="realm">
    <optgroup label="Deutsch">
        <option value="Aegwynn" <?php if($_REQUEST['realm'] == "Aegwynn") { echo 'selected="selected"'; }?> >Aegwynn</option>
        <option value="Alexstrasza" <?php if($_REQUEST['realm'] == "Alexstrasza") { echo 'selected="selected"'; }?> >Alexstrasza</option>
        <option value="Alleria" <?php if($_REQUEST['realm'] == "Alleria") { echo 'selected="selected"'; }?> >Alleria</option>
    </optgroup>
    </select>

    <input type="submit" value="Abschicken">
    </form>

    Ich weiß ja nich, das du da zusammengereiht hast, aber mein quelltext isses ganz gewiss nicht mehr...

    Was soll "<form action="<?php echo $_SERVER['PHP_SELF']; ?>" ???

    und warum ist "r" jetzt auf einmal "realm"...

    Fakt ist, das es immer noch nich geht, leider auch nicht von Manni, ich habe kein Plan mehr was ich falsch mache... ich habe diesen <?php Block direkt am Anfang der Datei, scheint trotzdem nichts zu wirken!

    Hier ist der PHP-Block

    PHP-Code:
    <?php
    if(isset($_POST['r'])) {
        
    setcookie('r'$_POST['r'], time() + 2592000);
    }
    ?>
    Sowie der Form-Teil:

    HTML-Code:
    <form name="ArsenalCharSuche" target="_blank" action="http://eu.wowarmory.com/character-sheet.xml" accept-charset="UTF-8" method="post">
    
    <big>Realm:</big><br>
    
    
    <select size="1" style="width: 235px; height: 20px" name="r">
    
    
    <optgroup label="Deutsch">
        <option value="Aegwynn" <?php if($_REQUEST['r'] == "Aegwynn") { echo 'selected="selected"'; }?> >Aegwynn</option> 
        <option value="Alexstrasza" <?php if($_REQUEST['r'] == "Alexstrasza") { echo 'selected="selected"'; }?> >Alexstrasza</option>
        <option value="Alleria" <?php if($_REQUEST['r'] == "Alleria") { echo 'selected="selected"'; }?> >Alleria</option>
    </optgroup>
    
    
    </select>
    
    
    
    <br>
    
    
    <big>Name:</big><br>
    <input type="text" size="35" name="n">
    
    
    
    
    <br><br>
    
    <input type="submit" value="Suchen">
    <input type="reset" value="Zur&uuml;cksetzen">
    
    </form>
    DIe Seite um die es übrigens geht (wo ich immer uploade) http://www.bastilampe.de/wow/beta/

  14. #14
    Da liegt also der Fehler... ^^

    Die gesamte momentane Methode basiert darauf, dass du das Formular an die selbe Datei sendest, wie die, die das Formular ausgibt. Daher hatte Xardas auch die URL durch <?php echo $_SERVER['PHP_SELF']; ?> ersetzt. So wie es aussieht, hast du aber gar nicht vor, die Formulareingaben selber zu verarbeiten, sodass du wohl doch über JavaScript gehen musst (Stichwörter: onsubmit und document.cookie)

  15. #15

    Arvan Gast
    Zitat Zitat von dead_orc Beitrag anzeigen
    Da liegt also der Fehler... ^^

    Die gesamte momentane Methode basiert darauf, dass du das Formular an die selbe Datei sendest, wie die, die das Formular ausgibt. Daher hatte Xardas auch die URL durch <?php echo $_SERVER['PHP_SELF']; ?> ersetzt. So wie es aussieht, hast du aber gar nicht vor, die Formulareingaben selber zu verarbeiten, sodass du wohl doch über JavaScript gehen musst (Stichwörter: onsubmit und document.cookie)
    Ahh nein, das darf doch nich war sein xD

    ich gucke mal ob ich da was hinkriege, das bezweifel ich zwar und wäre dankbar über eine kleine Nachhilfe ^^

  16. #16
    Code:
    <form ... onsubmit="expires=new Date(); expires.setTime(expires.getTime() + 365*24*60*60); document.cookie='realm='+document.getElementById('realm').value+'; expires='+expires.toGMTString();">
    ...
    <select id="realm" ...>
    Untested, unoptimized, and without any implied or explicit warrenty. Just what I hacked together...

    Oh, und du brauchst natürlich noch was, was das richtige Feld auswählt. Das musste aber selber machen, ich hab grad keine Zeit mehr. ^^

  17. #17

    Arvan Gast
    Zitat Zitat von dead_orc Beitrag anzeigen
    Code:
    <form ... onsubmit="expires=new Date(); expires.setTime(expires.getTime() + 365*24*60*60); document.cookie='realm='+document.getElementById('realm').value+'; expires='+expires.toGMTString();">
    ...
    <select id="realm" ...>
    Untested, unoptimized, and without any implied or explicit warrenty. Just what I hacked together...

    Oh, und du brauchst natürlich noch was, was das richtige Feld auswählt. Das musste aber selber machen, ich hab grad keine Zeit mehr. ^^
    Wie genau funktioniert das mit <select id...> ?

    Ich mein ich hab doch schon <option> tags mit den realms, muss ich so eine riesen auflistung etwa nochmal machen?

  18. #18
    Zitat Zitat von Arvan Beitrag anzeigen
    Wie genau funktioniert das mit <select id...> ?

    Ich mein ich hab doch schon <option> tags mit den realms, muss ich so eine riesen auflistung etwa nochmal machen?
    Nein, du sollst nur dem select Objekt ein id Attribut verpassen, mehr nicht.

  19. #19
    Andere Möglichkeit:
    PHP-Code:
    <?php
    if(isset($_POST['realm'])) {
        
    setcookie('realm'$_POST['realm'], time() + 2592000);
        
    header('Location: http://eu.wowarmory.com/character-sheet.xml?r=' urlencode($_POST['realm']) . '&n=' urlencode($_POST['name']));
    }
    ?><form action="<?php echo $_SERVER['PHP_SELF']; ?>" target="_blank" method="post">

    <dl>
      <dt>Realm:</dt>
      <dd><select size="1" style="width: 235px; height: 20px" name="realm">
    <optgroup label="Deutsch">
        <option value="Aegwynn" <?php if($_REQUEST['realm'] == "Aegwynn") { echo 'selected="selected"'; }?> >Aegwynn</option>
        <option value="Alexstrasza" <?php if($_REQUEST['realm'] == "Alexstrasza") { echo 'selected="selected"'; }?> >Alexstrasza</option>
        <option value="Alleria" <?php if($_REQUEST['realm'] == "Alleria") { echo 'selected="selected"'; }?> >Alleria</option>
    </optgroup>
    </select></dd>
    </dl>

    <dl>
      <dt>Name:</dt>
      <dd><input name="name" type="text"></dd>
    </dl>

    <input type="submit" value="Abschicken">
    </form>
    Es währe auch denkbar, dafür zu sorgen das sich nach dem absenden, das Arsenal sich in einem JS-Fenster öffnet.

  20. #20

    Arvan Gast
    Danke an alle, jetzt funktioniert es einwandfrei, das Ergebnis kann hier gesehen werden:

    http://www.bastilampe.de/index.php?links-s9

    Auf das nächste Feature schmeiße ich mich schon drauf xD

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •