Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    recuperare valore da form in javascript

    Quando c'è di mezzo javascript...
    Come posso recuperare i valori selezionati utilizzando questo script? Sembra che nulla sia passato alla pagina php!

    <html>
    <head>
    <script LANGUAGE="JavaScript">
    <!--

    // PickList script- By Sean Geraty (http://www.freewebs.com/sean_geraty/)
    // Visit JavaScript Kit (http://www.javascriptkit.com) for this JavaScript and 100s more
    // Please keep this notice intact

    // Control flags for list selection and sort sequence
    // Sequence is on option value (first 2 chars - can be stripped off in form processing)
    // It is assumed that the select list is in sort sequence initially
    var singleSelect = true; // Allows an item to be selected once only
    var sortSelect = true; // Only effective if above flag set to true
    var sortPick = true; // Will order the picklist in sort sequence

    // Initialise - invoked on load
    function initIt() {
    var selectList = document.getElementById("SelectList");
    var selectOptions = selectList.options;
    var selectIndex = selectList.selectedIndex;
    var pickList = document.getElementById("PickList");
    var pickOptions = pickList.options;
    pickOptions[0] = null; // Remove initial entry from picklist (was only used to set default width)
    if (!(selectIndex > -1)) {
    selectOptions[0].selected = true; // Set first selected on load
    selectOptions[0].defaultSelected = true; // In case of reset/reload
    }
    selectList.focus(); // Set focus on the selectlist
    }

    // Adds a selected item into the picklist
    function addIt() {
    var selectList = document.getElementById("SelectList");
    var selectIndex = selectList.selectedIndex;
    var selectOptions = selectList.options;
    var pickList = document.getElementById("PickList");
    var pickOptions = pickList.options;
    var pickOLength = pickOptions.length;
    // An item must be selected
    while (selectIndex > -1) {
    pickOptions[pickOLength] = new Option(selectList[selectIndex].text);
    pickOptions[pickOLength].value = selectList[selectIndex].value;
    // If single selection, remove the item from the select list
    if (singleSelect) {
    selectOptions[selectIndex] = null;
    }
    if (sortPick) {
    var tempText;
    var tempValue;
    // Sort the pick list
    while (pickOLength > 0 && pickOptions[pickOLength].value < pickOptions[pickOLength-1].value) {
    tempText = pickOptions[pickOLength-1].text;
    tempValue = pickOptions[pickOLength-1].value;
    pickOptions[pickOLength-1].text = pickOptions[pickOLength].text;
    pickOptions[pickOLength-1].value = pickOptions[pickOLength].value;
    pickOptions[pickOLength].text = tempText;
    pickOptions[pickOLength].value = tempValue;
    pickOLength = pickOLength - 1;
    }
    }
    selectIndex = selectList.selectedIndex;
    pickOLength = pickOptions.length;
    }
    selectOptions[0].selected = true;
    }

    // Deletes an item from the picklist
    function delIt() {
    var selectList = document.getElementById("SelectList");
    var selectOptions = selectList.options;
    var selectOLength = selectOptions.length;
    var pickList = document.getElementById("PickList");
    var pickIndex = pickList.selectedIndex;
    var pickOptions = pickList.options;
    while (pickIndex > -1) {
    // If single selection, replace the item in the select list
    if (singleSelect) {
    selectOptions[selectOLength] = new Option(pickList[pickIndex].text);
    selectOptions[selectOLength].value = pickList[pickIndex].value;
    }
    pickOptions[pickIndex] = null;
    if (singleSelect && sortSelect) {
    var tempText;
    var tempValue;
    // Re-sort the select list
    while (selectOLength > 0 && selectOptions[selectOLength].value < selectOptions[selectOLength-1].value) {
    tempText = selectOptions[selectOLength-1].text;
    tempValue = selectOptions[selectOLength-1].value;
    selectOptions[selectOLength-1].text = selectOptions[selectOLength].text;
    selectOptions[selectOLength-1].value = selectOptions[selectOLength].value;
    selectOptions[selectOLength].text = tempText;
    selectOptions[selectOLength].value = tempValue;
    selectOLength = selectOLength - 1;
    }
    }
    pickIndex = pickList.selectedIndex;
    selectOLength = selectOptions.length;
    }
    }

    // Selection - invoked on submit
    function selIt(btn) {
    var pickList = document.getElementById("PickList");
    var pickOptions = pickList.options;
    var pickOLength = pickOptions.length;
    if (pickOLength < 1) {
    alert("No Selections in the Picklist\nPlease Select using the [->] button");
    return false;
    }
    for (var i = 0; i < pickOLength; i++) {
    pickOptions[i].selected = true;
    }
    return true;
    }

    //-->
    </SCRIPT>
    </head>

    <body onLoad="initIt();">
    <form NAME="theform" ID="theform" ACTION="whatever.php" onSubmit="return selIt();">
    <table>
    <tr>
    <td>
    <select NAME="SelectList" ID="SelectList" SIZE="5" multiple="multiple" style="width: 150px">
    <option VALUE="01sel">Selection 01</option>
    <option VALUE="02sel">Selection 02</option>

    <option VALUE="03sel">Selection 03</option>
    <option VALUE="04sel">Selection 04</option>
    <option VALUE="05sel">Selection 05</option>
    <option VALUE="06sel">Selection 06</option>
    <option VALUE="07sel">Selection 07</option>
    <option VALUE="08sel">Selection 08</option>
    <option VALUE="09sel">Selection 09</option>
    <option VALUE="10sel">Selection 10</option>
    </select>

    </td>
    <td>
    <input TYPE="BUTTON" VALUE="->" ONCLICK="addIt();"></input>


    <input TYPE="BUTTON" VALUE="<-" ONCLICK="delIt();"></input>
    </td>
    <td>
    <select NAME="PickList" ID="PickList" SIZE="5" multiple="multiple" style="width: 150px">
    <option VALUE="01sel">Selection 01</option>
    </select>
    </td>
    </tr>
    <tr>
    <td ALIGN="left">
    <input TYPE="reset" VALUE="Reset" ONCLICK="javascript: window.location.href = 'picklist.html'">
    </td>

    <td>
    </td>
    <td ALIGN="right">
    <input TYPE="submit" VALUE="Submit">
    </td>
    </tr>
    </table>
    </form>
    </body>
    </html>

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    116
    allora io ho modificato in questo modo in pratica e il modo per recuperare delle variabili da una select multiple in php

    al name della selectho aggiunto le parentesi quadre picklist []

    Codice PHP:
    <select NAME="picklist[]" ID="PickList" SIZE="5" multiple="multiple" style="width: 150px"
    ah prima ho cambiato il name delle due select mettendole tutte e due in minuscolo per comodita

    Codice PHP:
    <select NAME="selectlist" ID="SelectList" SIZE="5" multiple="multiple" style="width: 150px">
    <
    select NAME="picklist[]" ID="PickList" SIZE="5" multiple="multiple" style="width: 150px"
    poi nella pagina di recupero dei dati basta scrivere questo

    Codice PHP:
    <?
    $picklist
    =$_POST['picklist'];
    if (
    $picklist)
    {
    foreach (
    $picklist as $test)
    {
        echo 
    "$test
    "
    ;
    }
    }
    else
    {
        echo
    "nessun valore inserito";
    }
    ?>
    in pratica con le parentesi [] creo un array con tutti i valri inseriti che poi recupero con foreach nella pagina di invio, credo che sia questo il metodo da usare

  3. #3
    Molte grazie per l'aiuto.
    Tuttavia, ho provato a fare quello che mi dici ma non funziona lo stesso: non viene trasmesso niente alla pagina php.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    116
    scusa avevo dimenticato (anche se mi sembrava implicito) che al form devi aggiungere anche il method che in questo esempio e post cioe
    Codice PHP:
    <form NAME="theform" ID="theform" ACTION="whatever.php" onSubmit="return selIt();" method="post"
    fammi sapere

  5. #5
    Fantastico! Ora funziona perfettamente.
    Grazie Grazie e Grazie!

  6. #6
    Un altro piccolo problema: dovrei chiedere aiuto nella sezione javascript... ma visto che ho già aperto questo thread, ne approfitto:
    cosa bisogna fare per poter utilizzare questo script per due gruppi di elementi distinti? In pratica, cosa devo modificare nel codice javascript per avere due "trasferitori di opzioni" in una stessa pagina?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.