2014-06-17 11 views
0

Je souhaite que lorsque je modifie un élément dans un menu déroulant, jquery change le fichier html qui a été produit par un script PHP. Voici le code:Menu Html avec fonction jQuery

JQUERY

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#regioni').change(function() { 
      if ($(this).val() == 'Home') { 
       $('.classtesto').show(); 
       $('.classfile').hide(); 
       $('.classfoto').hide(); 
       $('.classlogo').hide(); 
       $('.classcategoria').hide(); 
      } 
      if ($(this).val() == 'Gallery') { 
       $('.classtesto').hide(); 
       $('.classfile').hide(); 
       $('.classfoto').show(); 
       $('.classlogo').show(); 
       $('.classcategoria').show(); 
      } 
      if ($(this).val() == 'News') { 
       $('.classtesto').show(); 
       $('.classfile').show(); 
       $('.classfoto').show(); 
       $('.classlogo').hide(); 
       $('.classcategoria').hide(); 
      } 
      if ($(this).val() == 'Risultati') { 
       $('.classtesto').show(); 
       $('.classfile').hide(); 
       $('.classfoto').show(); 
       $('.classlogo').hide(); 
       $('.classcategoria').show(); 
      } 
      if ($(this).val() == 'Sponsor') { 
       $('.classtesto').show(); 
       $('.classfile').hide(); 
       $('.classfoto').hide(); 
       $('.classlogo').show(); 
       $('.classcategoria').hide(); 
      } 
     }) 
    }); 
</script> 

HTML

  <select name="regione" id="regioni"> 
       <option value="">Selezionane una</option> 
       <?php foreach ($regioni as $regione): ?> 
        <option value="<?php htmlout($regione); ?>"<?php 
        if ($regione == $nome_regione) { 
         echo ' selected="selected"'; 
        } 
        ?>><?php htmlout($regione); ?></option> 
         <?php endforeach; ?> 
      </select> 

J'ai 2 problèmes:

.Lorsque je clique sur le « CHOISISSEZ un élément "le programme ne fonctionne pas (il ne cache pas les tags);

Lorsque le code php définit un élément de menu de la page, le programme ne fonctionne pas (il ne cache pas les balises).

Malheureusement, aucun expert sur jquery et javascript, donc je ne trouve pas de solution relativement simple à ce problème.

Répondre

0
  1. Vous avez besoin d'une instruction IF lorsque "sélectionnez-en un" est sélectionné.
  2. Vous devez appeler .change() après avoir terminé les options de chargement de php.

    if ($ (this) .val() == '') { $ ('.classtesto'). Hide(); $ ('. Classfile'). Hide(); $ ('. Classfoto'). Hide(); $ ('. Classlogo'). Hide(); $ ('. Classcategoria'). Hide(); }

Après la sélection du code html (assurez-vous qu'il va après le menu déroulant):

$('#regioni').change(); 

De plus, vous devriez changer le déclencheur pour:

$('#regioni').on('change', function() { 

Voici le

+0

1.Si j'ajoute if ($ (this) .val() == '') cela fonctionne, merci! 2.Si j'ajoute ... le script doesn travail ... :( 1.OK :) :( 2.No – user3212453

+0

Assurez-vous que le .Modification() est après la SELCT j'ai mis à jour ma réponse avec lien vers jsFiddle (http.: //jsfiddle.net/PTyT7/) –

+0

Mon code est le même que le vôtre car il ne fonctionne pas? :( – user3212453