Problème Ajax/jQuery saisie

Fermé
blux Messages postés 24869 Date d'inscription dimanche 26 août 2001 Statut Non membre Dernière intervention 18 mars 2023 - Modifié le 9 janv. 2020 à 12:57
Bonjour,

j'ai un petit souci avec une page qui contient un peu d'ajax.

J'ai un sélecteur de date (avec une date par défaut) qui met une valeur dans un 'input text'. A l'ouverture de la page, je prends la valeur du sélecteur et je charge une page paramétrée avec la date choisie dans une <div>

Mon problème est que je n'arrive pas à modifier ma date via le sélecteur, lorsque je clique pour choisir (c'est un calendrier pop-up), ma zone d'input text n'est pas mise à jour (et du coup ma <div> non plus). Si par contre, je tape à la main une date dans ma zone, le script détecte le changement (j'ai un popup qui me le dit) mais rien n'est fait au niveau d'ajax pour me récupérer la bonne page (contenu.php) paramétrée comme il faut. Et en plus, il me remet dans la zone ma date par défaut !

Une explication (et un remède) m'aideraient bien.

Merci d'avance.

Le code, pour ceux que ça ne rebute pas (je débute, pas taper !) :

<body>
<div class="container flex">
    <div class="item">
        TB
    </div>
    <div class="item">
        <div class="cal">
        <form method="post" id="choix_date" action="">
            <?php
            date_default_timezone_set('Europe/Paris');
            echo '<input type="text" id="datepicker" value="'.date("d/m/Y", strtotime( '-1 days' ) ).'"/>';
            ?>
        </form>
        </div>
    </div>
</div>
<script type="text/javascript">
    var foopicker = new FooPicker({
      id: 'datepicker',
      dateFormat: 'dd/MM/yyyy',
    });
</script>
<br>

<div id="affichage"></div>

<script>
$('#datepicker').change(function(){
  alert("date changée");
}); 
</script>

<script type="text/javascript">
$(document).ready(function() { 
            var val_date = $('#datepicker').val(); 
            alert(val_date);
            $.ajax({
                type        : 'post',  
                url     : 'contenu.php', 
                data        : 'date='+val_date,
                success : function(txthtml) {
                    $('#affichage').html( txthtml ); 
                }
            });
    })
</script>

</body>