Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di ilcollaboratore
    Registrato dal
    Oct 2013
    residenza
    Toscana
    Messaggi
    43

    PHP non prende il valore

    Ciao Ragazzi, ho un problema con questo script che prende i valori da filtri di un form. Se viene settato un valore in questi filtri spariranno tutti gli altri lasciando quelli. In questo caso i valori sono righe di una tabella e con il seguente script rilevo se c'è stato l'inserimento di valori da filtrare e di conseguenza il far scrivere uno script javascript per nascondere gli altri:
    Codice PHP:
    <?php // FILTRI
    if(isset($_POST['submit'])){
      
    $count=0;       
      
    $filtri=array();
      if(isset(
    $_POST['filtro1'])){
        
    $filtri[0]=$_POST['filtro1'];
         
    $count+=1;
      }
      if(isset(
    $_POST['filtro2'])){
         
    $filtri[1]=$_POST['filtro2'];
        
    $count+=1;
      }
      if(isset(
    $_POST['filtro3'])){
        
    $filtri[2]=$_POST['filtro3'];
         
    $count+=1;
      }
      if(isset(
    $_POST['filtro4'])){
         
    $filtri[3]=$_POST['filtro4'];
         
    $count+=1;
      }
      if(isset(
    $_POST['filtro5'])){
         
    $filtri[4]=$_POST['filtro5'];
         
    $count+=1;
      }

      if(
    $count>0){
        echo 
    "$(\"#tabella table tr:nth-child(n+3)\").not(\"";
        for(
    $f=0;$f<5;$f++){
          if(isset(
    $filtri[$f])){
            if(
    $filtri[$f]>&& $filtri[$f]<91){
              echo 
    "#tabella table tr:nth-child(".($filtri[$f]+2).")";
              if(
    $f>$count-1){
                echo 
    ",";
              }
            }
          }
        }
        echo 
    "\").addClass(\"nascondi\");";
      }else
          exit;
    }

    ?>
    Tutto questo è inserito in uno script javascript che si carica al caricamento del documento, quindi con $(document).ready()...
    Praticamente al momento dell'invio del form sia se non inserisco valori da filtrare sia che li inserisco mi scompare tutti i valori, come se non prendesse il count: quindi mi stampa i valori echo dopo l'if del del count, visto che il for non lo prende in considerazione perché non ci sono valori da filtrare. Il risultato è questo
    codice:
    $("#tabella table tr:nth-child(n+3)").not("").addClass("nascondi");

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Se ti stampa qualcosa allora $count > 0 quindi un valore c'è.

    Hai provato a stampare l'array con print_r($filtri) ?
    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 L'avatar di ilcollaboratore
    Registrato dal
    Oct 2013
    residenza
    Toscana
    Messaggi
    43
    Ho provato a fare qualche prova e il risultato è: se lascio tutto come lo script scritto in partenza, la pagina funziona come deve funzionare, anche se ho inserito dati da filtrare, ma da quel momento in poi le altre righe rimangono nascoste. Invece se provo a stampare la variabile $filtri o $count, la pagina funziona tranne che per i valori da filtrare; come se non li prendesse in considerazione, e non stampa niente. Sono assurde ste cose...
    Sicuramente c'è un errore da qualche parte, ma a rigor di logica torna tutto, per questo non riesco a trovare il passaggio giusto
    Ultima modifica di ilcollaboratore; 03-02-2014 a 10:46

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Il problema secondo me sta nel fatto che se non setti un parametro quel parametro non viene trasmesso.
    Dovresti provare la cosa seguente per ogni parametro.
    Codice PHP:
      if(isset($_POST['filtro2'])){
         
    $filtri[1]=$_POST['filtro2'];    
        
    $count+=1;  
      } else {
         
    $filtri[1] = 'none';
         
    $count+=1;
      } 
    Poi nel ciclo "for" se il valore del posto dell'array = 'none' non fai nulla.
    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 L'avatar di ilcollaboratore
    Registrato dal
    Oct 2013
    residenza
    Toscana
    Messaggi
    43
    Ho risolto tutto proprio ora. Ti ringrazio per avermi aiutato. Il problema era lo script php che era dentro uno script javascript che si avviava al caricamento della pagina. Quindi ho spostato tutto e adesso torna. Probabilmente erano problemi di compatibilità o si davano noia a vicenda. Ora è tutto ok

Tag per questa discussione

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.