Frage

Beispiel speichern Geschlecht

<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>

Hier ist ein Beispiel, den Wert zu aktualisieren

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

Wie machen, wenn wir uns auf das Geschlecht, den Wert klicken wird automatisch speichern auf die db. Lassen Sie mich wissen.

War es hilfreich?

Lösung

Etwas setzen Sie auf einen schöneren Weg aus:

  // $_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;
          }
      }
  }

Unter der Annahme der gleichen Auszeichnungs, eine AJAXy Lösung (mit 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>

Andere Tipps

Sie können dies allein mit PHP nicht tun ... Sie werden auf dieser Seite einige JavaScript benötigen, die onchanged des Radiobutton (n) und führt einen PHP-Skript ausgeführt wird. Dies nennt man Asynchronous JavaScript and XML oder "AJAX" und eine schnelle Einführung wäre http: // www.w3schools.com/ajax/default.asp

1 bis karim79 für den Hinweis auf jQuery / AJAX und _POST Dingen $. Sehr wichtig.

Hier ist eine Lösung ohne jQuery (wenn Sie jQuery nicht interessiert sind jetzt in dem Lernen)

Schritt 1: Fügen Sie ein Onchange auch auf Ihren Checkbox-Tags wie folgt:

<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>

Schritt 3: Fügen Sie einen Namen Attribut-Tag wie folgt zu bilden:

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

Schritt 3: Schreiben Sie die Event-Handler onchange Funktion in javascript:

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

Ein paar wichtige Dinge zu beachten.

  • $ _ POST ist eine bessere Option als $ _REQUEST.
  • Verwenden Sie <?php statt Kurzform von PHP-Tag <?. Es wird in zukünftigen Versionen von PHP veraltet.
  • Zeit Investition in das Lernen jQuery / AJAX ist zu 100% der Zeit und Mühe wert
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top