Jquery submit

Bonjour,
Mon code devrait provoquer un submit au click sur la photo et renvoyer vers le fichier php correspondant mais ça ne submite pas.
Pouvez vous me dire où est l'erreur ?

<html>
    <head>
        <script src= "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">  </script>
    </head>
   
<style>  #photo  {width:90px;  border-radius:20px 20px;  max-height: 90px;}  </style>
   
 <script>
$( function() { 
    $('#photo').click(function() {     
       var valeur =  'bleu';
       $('#categ').val(valeur);
        alert ( $('#categ').val() );
      
       $("#form1").submit(); 
});
}); 
 </script>

    <body>

 <form  id="form1" action="index2.php"  onsubmit="alert('OK');">
          <input type="hidden" id="categ"  value=""  />
        <input type="submit" id="submit" name="submit"   value='OK'/>                
 </form> 
 
<br> <img   id="photo" src="imgs/perruches.jpg" alt="photos"/  >
 
</body>   </html>


Configuration: Windows / Firefox 76.0

6 réponses

  1. Modérateur
    Bonjour,

    Est-ce que l'alert s'affiche au moins ?
    As tu des erreurs dans la console javascript de ton navigateur ?

    Ah.. et,
        </head>
       
    <style>  #photo  {width:90px;  border-radius:20px 20px;  max-height: 90px;}  </style>
       
     <script>
    $( function() { 
        $('#photo').click(function() {     
           var valeur =  'bleu';
           $('#categ').val(valeur);
            alert ( $('#categ').val() );
          
           $("#form1").submit(); 
    });
    }); 
     </script>
    
        <body>
    

    Soit ut places ton javascript et ton css dans les balises head .. soit dans le body.
    Pas entre les deux... ( il n'y a rien entre </head> et <body> !! )

    D'ailleurs, le mieux, c'est de placer ses codes JS juste avant le </body>
    1. en enlevant:
      <input type="submit" id="submit" name="submit" value='OK'/>
      ça marche !
      1. par contre pour la réception la méthode $_POST ne marche pas
        mais avec $_GET c'est ok.
        1. Modérateur
          Tù n'as pas indiqué la "method='post' " dans le form
      2. Tu as raison POST ça marche (et c'était illogique que ça ne fonctionne pas), dans mes essais j'ai du me planter.
        Merci .
        1. j'oubliais pour le positionnement des "<styles>" et "<script>"
          tu as aussi raison.