PHP - Nasıl bir radyo düğmesini tıklatın MySQL veri güncellemek için

3 Cevap php

Cinsiyet kaydetmek Örnek

<form action="save.php?id=<?=$id?>" method="post">
    <p><label><input name="gender" type="radio" value="male" <?php if($gender=='male'){?>checked="checked"<? }?> /> Male</label></p>
    <p><label><input name="gender" type="radio" value="female" <?php if($gender=='female'){?>checked="checked"<? }?> /> Female</label></p>
</form>

İşte bir örnek değerini güncellemek için

  if ($_REQUEST['gender']) {
  mysql_query("UPDATE users SET gender='$gender' WHERE id='" . $id . "'") or die(mysql_error());
  }

Biz cinsiyet tıkladığınızda nasıl yapılır oto db değer kazandıracak. Bana haber ver.

3 Cevap

Bir güzel yolda size yola bir şey:

  // $_POST is way cooler than $_REQUEST
  if (isset($_POST['gender']) && !empty($_POST['gender'])) {

      // sql injection sucks
      $gender = my_real_escape_string($_POST['gender']);

      // cast it as an integer, sql inject impossible
      $id = intval($_GET['id']);

      if($id) {
          // spit out the boolean INSERT result for use by client side JS
          if(mysql_query("UPDATE users SET gender=$gender WHERE id=$id")) {
              echo '1';
              exit;
          } else {
              echo '0';
              exit;
          }
      }
  }

Aynı biçimlendirme varsayarak, bir ajaxy çözüm kullanarak (jQuery):

<script>
var id = <?=$id?>;

// when the DOM is ready
$(document).ready(function() {

    // 'click' because IE likes to choke on 'change'
    $('input[name=gender]').click(function(e) {

        // prevent normal, boring, tedious form submission
        e.preventDefault();

        // send it to the server out-of-band with XHR
        $.post('save.php?id=' + id, function() {
            data: $(this).val(),
            success: function(resp) { 
                if(resp == '1') {
                    alert('Saved successfully');
                } else {
                    alert('Oops, something went wrong!');
                }
            }
        });
    });
});
</script>

Yalnız PHP ile bunu yapamaz ... Eğer onchanged radiobutton (ler) yürütür ve bir PHP komut yürütüldüğünde bu sayfada bazı JavaScript gerekir. Bu Asynchronous JavaScript ve XML veya "AJAX" denir, ve hızlı bir giriş http://www.w3schools.com/ajax/default.asp olurdu

1 jQuery / AJAX ve $ _POST şeyini işaret için karim79 için. Çok önemli.

(Şu anda jQuery öğrenme ilgilenen değilse) İşte jQuery olmadan bir çözümdür

Step 1:, hatta bu gibi onay kutusu etiketleri üzerinde bir onchange ekle:

<p><label><input name="gender" type="radio" value="male" onchange="do_submit()" <?php if($_POST['gender']=='male'){?>checked="checked"<? }?> /> Male</label></p>
<p><label><input name="gender" type="radio" value="female" onchange="do_submit()" <?php if($_POST['gender']=='female'){?>checked="checked"<? }?> /> Female</label></p>

Step 3: bir ekleme name Böyle etiketi oluşturmak için özellik:

<form name="myform" action="check.php" method="post">

Step 3: javascript Onchange olay işleyici işlevini yazın:

<script type="text/javascript">
function do_submit() {
  document.forms['myform'].submit();
}
</script>

Unutulmaması gereken önemli şeylerden çift.

  • $ _POST $ _REQUEST Daha iyi bir seçenektir.
  • <?php yerine php etiketinin kısa formu kullanın <?. Bu php gelecekteki sürümlerinde reddedilecektir.
  • JQuery / AJAX öğrenme zaman yatırım zaman ve çabaya değer% 100'dür