kostenloser Webspace werbefrei: lima-city


Den gesamten Inhalt eines <select>-Tags absenden

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    dustboy

    Kostenloser Webspace von dustboy

    dustboy hat kostenlosen Webspace.

    Hi.

    Ich habe den HTML-Tag <select> ein wenig zweckentfremdet, um mir ein Element zu basteln, welches von HTML nicht mitgeliefert wird (versteh ich au warum - das braucht man im regelfall net^^). Jedenfalls hab ich das <select>-tag zu einem Element umgewandelt, welches nur noch Daten sammelt (über ein JavaScript) und sie anzeigt. Wird das Formular nun abgeschickt möchte ich nun sämtliche Daten, die im Feld stehen, abschicken, egal, ob der User welche angewählt hat oder nicht.

    Da es sich um ein Multichoice-Feld handelt hab ich schon versucht alle vor dem Abschicken per JavaScript zu markieren aber irgendwie hab ich das nicht auf die reihe bekommen^^

    Ich bräuchte eine Lösung die sowohl unter IE als auch FireFox funktioniert (hatte schon genug mühe damit das ding au unter IE zum laufen zu bringen xD)

    Danke euch schonmal
    Dustboy
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Also genau genommen geht es um die value-werte von den option-tags?
    function getData(sourceID)
    {
    var htmltxt;
    selectnode = document.getElementById(sourceID).getElementsByTagName('OPTION');
    for(a=0;a<selectnode.length;a++){
        alert(selectnode[a].name+' = '+selectnode[a].value)
    }
    }
    </script>
    <select  id="readme"  name="xghh">
            <option name="xghh" value="dfj">dfj</option>
            <option  name="xghh" value="ghk">ghk</option>
            <option  name="xghh" value="hgk">fdj</option>
            <option name="xghh" value="dfhj">dfj</option>
            <option  name="xghh" value="fjh">fj</option>
    </select>
    <a href="javascript:getData('readme')">selectfel lesen</a>


    Soviel zum auslesen aber verstehen tue ich nicht warum Du das machst.
    Kannst Du die nicht gleich in hidden-inputs speichern?
    Du musst ja verschiedene Namen-attribute haben oder das sonstwie "umwandeln"
  4. Autor dieses Themas

    dustboy

    Kostenloser Webspace von dustboy

    dustboy hat kostenlosen Webspace.

    Ja sowas in die richtung such ich, allerdings sollten die Werte per Post übermittelt werden (und idealerweise in nem Array in PHP ankommen...)
    Zum Thema warum ich das Brauch: Ich hab mir sowas gebalstelt wo 2 multichoice-felder sind und mann kann die Werte von der linken in die rechte schieben und damit auswählen (ich habe ziemlich viele optionale werte, daher wäre ein einfaches multichoice etwas unhandlich und checkboxen unübersichtlich....)
  5. Also gut.
    Ich habe den Code mal erweitert.
    Also entweder übernimmt dein php-code die Daten indem er in einer schleife alle 'data_'+$a ausliest oder du nimmst den Inhalt
    von data_kompakt und liest in mit explode() in ein array ein.
    Damit man sieht was gesendet wird habe ich das als GET-formular gemacht.
    Da die knoten-Erstellung usw DOM-gerecht ist dürfte es eigentlich keine Probleme mit irgendwelchen Browsern geben, solange javascript aktiviert ist.

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    
    <html>
    <head>
        <title>selectfeld-formular</title>
    </head>
    
    <body>
    
    
    <script type="text/javascript">
    function getData(sourceID)
    {
        var arrayTrenner = '-'; //der trenner f&uuml;r php-explode()
        var target_ID_1 = "hidden_inputs1";
        var target_ID_2 = "hidden_inputs2";
    
        selectnode = document.getElementById(sourceID).getElementsByTagName('OPTION');
            for(a=0;a<selectnode.length;a++){
    
                //fuer jeden Datensatz 1 input
                saveInInput('data_'+a,selectnode[a].value,target_ID_1);
                //Daten zusammen in einem Text mit trenner
                if (a==0)
                    {var sendArray = selectnode[a].value;}
                sendArray += arrayTrenner+selectnode[a].value;
            }
            //alle daten zusammen senden und in php mit explode(9 in ein array uebernehmen
            saveInInput('data_kompakt',sendArray,target_ID_2);
            return true;
    }
    function saveInInput(name,value,id)
    {
        var inputnode = document.createElement('INPUT')
        inputnode.type = 'Hidden';
        inputnode.name = name;
        inputnode.value = value;
        document.getElementById(id).appendChild(inputnode);
    }
    
    </script>
    <form action="" method="GET"  onsubmit="getData('readme')">
    <select  id="readme"  name="xghh">
            <option name="xghh" value="dfj">dfj</option>
    
            <option  name="xghh" value="ghk">ghk</option>
            <option  name="xghh" value="hgk">fdj</option>
            <option name="xghh" value="dfhj">dfj</option>
            <option  name="xghh" value="fjh">fj</option>
    </select>
    <!---<a href="javascript:void getData('readme')">selectfeld 'speichern'</a>---->
    <div id="hidden_inputs1"></div>
    <div id="hidden_inputs2"></div>
    <input type="Submit" value="senden">
    </form>
    </body>
    </html>
  6. Autor dieses Themas

    dustboy

    Kostenloser Webspace von dustboy

    dustboy hat kostenlosen Webspace.

    Stimmt. Das is au ne ganz gute möglichkeit. Das dürfte so wirklich funktionieren. Nur ne leichte Modifizierung noch, dann ist as gut =)

    Kleiner Hinweis für dich was ich Modifiziere (vll weißstes noch nich und könntest deshalb bei der Gelegenheit au noch was dazu lernen =) )
    Wenn du alle Elemente gleich benennst und zwar mit einem [] am schluss, dann kommen sie in PHP direkt als Array an.

    Kleines Beispiel dazu:
    Statt 'data_'+a, schreibste einfach 'data[]'.
    Und schon kannst du es in PHP mit $_POST['data'][0] $_POST['data'][1] usw. auslesen

    Jedenfalls danke dir =)
  7. Nein das wusste ich nicht, danke solche infos helfen :)
  8. 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!