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

    Nome di array variabile

    Ciao a tutti .. ho un piccolo problema in javascript .. non sono per niente pratico e quindi cerco se è possibile un piccolo aiuto.
    Il mio problema è questo ... ho degli array cosi fatti

    ar_0=new Array()
    ar_1=new Array()
    ar_2=new Array()


    visto che ne devo usare un numero variabile volevo crearli con un ciclo IF .. in tale maniera

    ar_(variabile da 1 a n) = new Array()

    come posso fare sempre se è possibile farlo ? non so come unire la parte fissa ar_ con un parte variabile .

    ciao a tutti

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    in un ciclo,
    window['ar_'+n]=new Array();
    potrebbe fare al caso
    ciao

  3. #3
    Grazie perfetto ...

    visto che ci sono chiedo un 'altra cosa sempre su questo argomento considerando la mia ignoranza in materia

    array_rif=eval("ar_"+id);
    for(i=0;i<array_rif.length;i++){
    document.form1.division.options[i]=array_rif[i]

    Questa volta la varaibile ID non è un ciclo ma mi viene passata e può assumere un valore da 0 a n ... per ricreare sempre ar_0 , ar_1 o ar_3 ho usato EVAL .

    E' giusto questo comando o è meglio che lo sostituisco con un altro ? premetto che funziona

    ciao a tutti

  4. #4
    Non è che in questo caso fosse necessario, comunque così è un pò più veloce:
    codice:
    array_rif=window["ar_"+id];
    Per interfacciarti agli elementi è meglio usare il DOM:
    codice:
    document.getElementById("form1").ecc....

  5. #5
    Originariamente inviato da Mega69
    Per interfacciarti agli elementi è meglio usare il DOM:
    codice:
    document.getElementById("form1").ecc....
    Ciao Mega69 .. grazie del tuo consiglio ... ma visto che sono alla prime armi non ho ben capito deve utilizzare il tuo suggerimento riguardo il DOM

    per caso intendi in queste righe qui sotto per riempire il mio array ?

    Codice PHP:
    for(i=0;i<array_rif.length;i++){
    document.form1.division.options[i]=array_rif[i

    ciao e grazie


    P.s Se qualcuno se lo sta domandando questo script è parte di uno script php javascript per avere due SELECT dipendenti con valori che dovrò prendere dal database.

    Inserisco il codice per maggior chiarezza ed eventualmente consigli che sono sempre utili

    Codice PHP:
    <script type="text/javascript">
    function select(id){


        for (n = 0; n < 3; n++){
            window['ar_'+n]=new Array();
        }


     ar_0[0]=new Option('uno1','D11')
     ar_0[1]=new Option('uno2','D12')
     ar_0[2]=new Option('uno3','D13')

     ar_1[0]=new Option('due1','D21')
     ar_1[1]=new Option('due2','D22')
     ar_1[2]=new Option('due3','D23')

     ar_2[0]=new Option('tre1','D31')
     ar_2[1]=new Option('tre2','D32')
     ar_2[2]=new Option('tre3','D33')


            if(id < "0"){
                  // Delete all entries in the cities list box
                 for (i = document.form1.division.length; i > 0; i--){
                    document.form1.division.options[i-1] = null
                  }
                // Add comment option to City List box
            document.form1.division.options[0] = new Option("-- Select City --",0)
            }

            array_rif=window['ar_'+id];
            for(i=0;i<array_rif.length;i++){
            document.form1.division.options[i]=array_rif[i]
            }

    }
    </script>

    <?php

    $open 
    mysql_connect(localhost,root,password);
    mysql_select_db("soccer",$open);
    $_CONF['tprefix'] = '';


        
    $sql_seasons_statement "SELECT * FROM ".$_CONF['tprefix']."seasons ORDER BY status DESC, name DESC";
        
    $result_seasons mysql_query("$sql_seasons_statement");
        
    $total_seasons mysql_num_rows($result_seasons);
        
    $s 0;
        
    $season_select "
            <select name=\"season\" onChange=\"select(this[this.selectedIndex].id)\" >
            <option id=\"-1\" value=\"\">-- Select Season --</option>
        "
    ;

        while(
    $s $total_seasons) {
            if(
    mysql_result($result_seasons,$s,"status") == 1) {
                
    $current_season mysql_result($result_seasons,$s,"id");
            }

            
    $season_select .= "
                <option id=\"
    $s\" value=\"".mysql_result($result_seasons,$s,"id")."\">"
                
    .mysql_result($result_seasons,$s,"name").
                
    "</option>
            "
    ;
            if(!
    $season) {
                if(
    mysql_result($result_seasons,$s,"status") == 1) {
                    
    $open_season mysql_result($result_seasons,$s,"id");
                    
    $open_season_name mysql_result($result_seasons,$s,"name");
                    
    $season $open_season;
                }
            } else {
                if(
    mysql_result($result_seasons,$s,"id") == $season) {
                    
    $open_season mysql_result($result_seasons,$s,"id");
                    
    $open_season_name mysql_result($result_seasons,$s,"name");
                }
            }
            
    $s++;
        }

        
    $season_select .= "
            </select>
        "
    ;

        if(!
    $open_season_name) {
            
    $open_season_name "Off-Season";
        }


        
    $myselect "
            <center>
            <form name=\"form1\" method=\"post\" action=\"selecttest.php\">
            
    $season_select
            <select name=\"division\">
            <option id=\"-1\" value=\"\">-- Select Division --</option>"
    ;

        
    $myselect .= "
            </select>
            <input class=\"button\" type=\"submit\" name=\"Submit\" value=\"View\">
            </form></center>"
    ;


        ECHO 
    $myselect ;

    ?>

  6. #6
    Se ad esempio dai alla select un id="division" al posto di name="division" ( nome che in ogni caso puoi benissimo lasciare ), puoi fare:

    document.getElementById("division")

    per interfacciarti all'elemento, senza dover passare dalla form che lo contiene.

  7. #7
    Originariamente inviato da Mega69
    Se ad esempio dai alla select un id="division" al posto di name="division" ( nome che in ogni caso puoi benissimo lasciare ), puoi fare:

    document.getElementById("division")

    per interfacciarti all'elemento, senza dover passare dalla form che lo contiene.
    Ti ringrazio per il tuo aiuto ...... allora ho fatto quello che mi hai detto .. spero che ho fatto bene ... per adesso sembra che funzioni ..


    Codice PHP:
        $myselect "
            <center>
            <form name=\"form1\" method=\"post\" action=\"selecttest.php\">
            
    $season_select
            <select id=\"division\">
            <option id=\"-1\" value=\"\">-- Select Division --</option>"



    Codice PHP:
            if(id "0"){
                  
    // Delete all entries in the cities list box
                 
    for (document.getElementById("division").length0i--){
                    
    document.getElementById("division").options[i-1] = null
                  
    }
                
    // Add comment option to City List box
            
    document.getElementById("division").options[0] = new Option("-- Select City --",0)
            }

            
    array_rif=window['ar_'+id];
            for(
    i=0;i<array_rif.length;i++){
            
    document.getElementById("division").options[i]=array_rif[i]
            } 

    Se tutto ok ... ti volevo chiedere c'e un motivo (esempio velocità del codice ? , chiarezza de codice ? ) per cui conviene interfacciarsi direttamente all'elemento, senza dover passare dalla form che lo contiene ...

    Ciao e grazie

  8. #8
    Sono gli standard. E' molto più sicuro, semplice e crossbrowser usare gli standard piuttosto che sintassi alternative.

    Ciao

  9. #9
    Ciao ... ultima domanda

    Codice PHP:
    <select name=\"season\" onChange=\"select(this[this.selectedIndex].id)\" > 
            <option id=\"-1\" value=\"\">-- Select Season --</option> 

    Codice PHP:
    <script type="text/javascript"
    function 
    select(id){ 

    dalla select name=season ..."passo" il valore id .. alla funzione javascript .. desideravo sapere se oltre al valore ID , era possbile in qualche modo passare anche il valore VALUE .

    Ciao e grazie a tutti

  10. #10
    Certo, basta che passi alla funzione non l'id ma l'oggetto option selezionato:
    Codice PHP:
    <select name="season" onChange="select(this[this.selectedIndex]);" >
            <
    option id="-1" value="">-- Select Season --</option
    e poi nella funzione ti ricavi l'id e il value dell'oggetto:
    Codice PHP:
    function select(opt) {
      var 
    idOption=opt.id,
           
    valOption=opt.value;

      
    //ora ci puoi fare quello che vuoi


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.