Dès que quelqu'un active une case à cocher. Je veux que la valeur soit envoyée à une page php pour qu'elle la mette à jour dans ma base de données.

enter image description here

HTML:

<div class="form-group">
  <div class="tg-optionbox">
    <span>Promotional Video</span>
    <span class="tg-iosstylcheckbox">
     <input type="checkbox" id="video" name="video" value="video">
     <label for="video"></label>
      <div id="echo2"></div>
     </span>
   </div>
</div>

JQUERY:

$(document).ready(function(){
  $("input[type=checkbox]").click(function () {
      $.ajax({
          type: "POST",
          url: "get/update-feature.php",
          data: {
              value: $('input:checkbox:checker').val()
          },
          success: function(data) {
              $('#echo2').html(data); 
          }
      });
  });
});

PHP:

    <?
$sent_value = $_POST['value'];

if(isset($sent_value)){
        //update database
        echo "updated";
}else{
        //update database
}

        ?>

Actuellement, ma jquery ne fonctionne pas. Comment j'en ai besoin:

  • Ils cliquent sur la case à cocher orange
  • Jquery reconnaît cela et envoie la valeur de la case à cocher à ma page php
  • ma page php obtient la valeur et la met dans la base de données
0
Searle 24 nov. 2017 à 14:02

3 réponses

Meilleure réponse

J'espère que cela peut vous aider.

HTML: non modifié

<div class="form-group">
  <div class="tg-optionbox">
    <span>Promotional Video</span>
    <span class="tg-iosstylcheckbox">
     <input type="checkbox" id="video" name="video" value="video">
     <label for="video"></label>
      <div id="echo2"></div>
     </span>
   </div>
</div>

JavaScript: modifié

Remplacé: value: $('input:checkbox:checker').val() par: value: $(this).prop("checked") ? 1 : 0

Vous devez envoyer la valeur de la case à cocher cliquée. Vous devez donc utiliser $(this).

Pour obtenir la valeur de checkbox, utilisez .prop("checked"). Si la valeur renvoyée est true, alors elle est vérifiée. Si c'est false, alors il n'est pas vérifié.

Donc, si la case est cochée, 1 est envoyé. Sinon, 0 est envoyé

$(document).ready(function(){
  $("input[type=checkbox]").click(function () {
      $.ajax({
          type: "POST",
          url: "get/update-feature.php",
          data: {
              value: $(this).prop("checked") ? 1 : 0
          },
          success: function(data) {
              $('#echo2').html(data);
          }
      });
  });
});

PHP: modifié

Si la valeur est égale à 1 ou la valeur égale à 0

<?php
$sent_value = $_POST['value'];

if(isset($sent_value)){
    if ($sent_value == 1) {
        echo "Checked" ;
    }
    else {
        echo "Un Checked" ;
    }
}
else{
    echo "Error" ;
}
?>
0
Mario Rawady 24 nov. 2017 à 12:59

Utilisez le gestionnaire d'événements .change ():

$('input:checkbox').change(function () {
    var name = $(this).val();
    var check = $(this).attr('checked');
    //Your Ajax code
});
0
Hamza Abdaoui 24 nov. 2017 à 11:07

Au lieu de echo, utilisez "return true" si succès sinon false dans le code php

$(document).ready(function(){
  $("#video").click(function () {

    $.ajax({
          type: "POST",
          url: "get/update-feature.php",
          data: {
              value: $('input[type=checkbox]').val()
          },
          success: function(data) {
              $('#result').html(data); 
          }
      });
  });
});



<div class="form-group">
  <div class="tg-optionbox">
    <span>Promotional Video</span>
    <span class="tg-iosstylcheckbox">
     <input type="checkbox" id="video" name="video" value="video">
     <label for="video"></label>
      <div id="echo2"><p id="result"></p></div>
     </span>
   </div>
</div>

L'erreur est dans $('input:checkbox:checker').val() donc la valeur n'est pas envoyée au fichier php et la méthode success attend une valeur de retour en php. Nous devons utiliser "return" au lieu de "echo"

2
Tom M 24 nov. 2017 à 13:26
47471884