Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027

    getElementsByClassName() non funziona

    Ciao ragazzi, sapreste dirmi come mai questo piccolo codice non funziona?

    codice:
    function controlla_nome_file(){    	if(document.getElementsByClassName("new_name").value==""){
        		alert("Attenzione! Compilare il campo relativo al Nuovo Nome prima di procedere");
        		return false;
        	}
        }
    thanks

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    E' elements non element. Quindi si tratta di una lista di "oggetti" e di conseguenza non dovrebbe avere una proprietà value.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027
    e quindi come faccio a controllare il value? cioè io avrei bisogno di controllare il value degli oggetti con quella classe

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    codice:
    lista = document.getElementsByClassName("new_name");
    l = lista.length;
    for (i=0;i<l;i++) {
      elemento = lista[i];
      if (elemento.value == "") {
         quello che vuoi
      }
    }
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027
    ok il tuo codice funziona, adesso io ho fatto così guarda:

    codice:
    function controlla_nome_file(){      lista = document.getElementsByClassName("new_name");
          l = lista.length;
          for(i=0;i<l;i++){
            elemento = lista[i];
            if(elemento.value == "") {
              alert("Attenzione! Compilare il campo relativo al Nuovo Nome prima di procedere");
              return false;
            }
          }
    
        }
    e questa è la funzione javascript

    la funzione viene chiamata da qui

    codice:
    echo "<td><form class=\"form-inline\" role=\"form\" method=\"POST\" onsubmit=\"return controlla_nome_file()\" .....................
    questa riga di php si trova all'interno di un ciclo foreach quindi adesso ovviamente se ci sono più elementi con quella classe e uno di loro ha il value != 0 ma gli altri hanno il value == 0 mi da ugualmente l'alert, secondo te come potrei fare per far si che controlli il value solo dell'elemento selezionato? che ha quella classe specifica.

    ovvero ci sono 3 elementi tutti e 3 con la stessa classe tutti e 3 devono essere controllati, se uno dei 3 ha il value != 0 e viene eseguito un comando da quell'elemento specifico allora deve subentrare la funzione js che controlla...

    c'è una piccola parte di php te la incollo tutta magari capisci meglio

    codice:
    <?php              foreach($resimg as $row){
                  	echo "<tr>";
                  	echo "<td>{$row['titolo']}</td>";
                  	echo "<td>{$row['genere']}</td>";
                  	echo "<td>";
                      if($row['media'] != 0) {
                        echo "<input type=hidden class=rating readonly=readonly value=".$row['media']." />";
                      }
                      else {
                        echo "<input type=hidden class=rating readonly=readonly value=-1 />";
                      }
                    echo "</td>";
                  	echo "<td><a data-lightbox=roadtrip data-title='".$row['titolo']."' href=utenti/".$id."/".$row[nomeimmagine].">{$row['nomeimmagine']}</a></td>";
                  	echo "<td><form class=\"form-inline\" role=\"form\" method=\"POST\" onsubmit=\"return controlla_nome_file()\" action=\"rename.php?idutente=$id&nomeimmagine=$row[nomeimmagine]\"><div class=\"form-group\"><input type=\"text\" class=\"form-control new_name\" placeholder=\"Nuovo nome\" name=\"new_name\"></div><button type=\"submit\" name=\"rinomina\" class=\"btn btn-success\"><span class=\"glyphicon glyphicon-ok\"></span></button></form></td>";
                  	echo "<td><form class=\"form-inline\" role=\"form\" method=\"POST\" action=\"delete.php?idutente=$id&nomeimmagine=$row[nomeimmagine]\"><div class=\"form-group\"><button type=\"submit\" name=\"elimina_file\" class=\"btn btn-danger\"><span class=\"glyphicon glyphicon-remove\"></span></button></form></td>";
                  	echo "</tr>";
                    }
                  ?>

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    L'idea è di dare ad ogni elemento un id univoco e poi di controllare quell'id e solo quello.

    codice:
    function controlla_nome_file(ident){
         if(document.getElementById(ident).value==""){
         alert("Attenzione! Compilare il campo relativo al Nuovo Nome prima di procedere");
        return false;
       }    
    }

    Codice PHP:
      <?php
     $i 
    0;
     foreach(
    $resimg as $row){
                   
    $id "id$i";
                    echo 
    "<tr>";
                    echo 
    "<td>{$row['titolo']}</td>";
                    echo 
    "<td>{$row['genere']}</td>";
                    echo 
    "<td>";
                      if(
    $row['media'] != 0) {
                        echo 
    "<input type=hidden class=rating readonly=readonly value=".$row['media']." />";
                      }
                      else {
                        echo 
    "<input type=hidden class=rating readonly=readonly value=-1 />";
                      }
                    echo 
    "</td>";
                    echo 
    "<td><a data-lightbox=roadtrip data-title='".$row['titolo']."' href=utenti/".$id."/".$row[nomeimmagine].">{$row['nomeimmagine']}</a></td>";
                    echo 
    "<td><form class=\"form-inline\" role=\"form\" method=\"POST\" onsubmit=\"return controlla_nome_file('$id')\" action=\"rename.php?idutente=$id&nomeimmagine=$row[nomeimmagine]\"><div class=\"form-group\"><input type=\"text\" class=\"form-control new_name\" placeholder=\"Nuovo nome\" name=\"new_name\" id='$id'></div><button type=\"submit\" name=\"rinomina\" class=\"btn btn-success\"><span class=\"glyphicon glyphicon-ok\"></span></button></form></td>";
                    echo 
    "<td><form class=\"form-inline\" role=\"form\" method=\"POST\" action=\"delete.php?idutente=$id&nomeimmagine=$row[nomeimmagine]\"><div class=\"form-group\"><button type=\"submit\" name=\"elimina_file\" class=\"btn btn-danger\"><span class=\"glyphicon glyphicon-remove\"></span></button></form></td>";
                    echo 
    "</tr>";
            
    $i++;
                    }
                  
    ?>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027
    vero non ci avevo pensato

    grazie mille davvero!

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.