0

私はこの問題を解決するために何日も努力していますが、今のところ結果はありません...
私がしたいのは、ユーザーがチェックボックスをオンまたはオフにしたときにチェックボックスの値をphpにPOSTすることです。

form.php:

<?php
if (isset($_POST['box'])) {
echo $_POST['box'];
} ?> 

脚本:

<script>
$(document).ready(function() {
 $('.box').on('change', function(event) { 
  var checkbox = $(event.target);
  var isChecked = $(checkbox).is(':checked');
  $.post('/form.php', {id: checkbox.attr('id'), value: isChecked});
 });
}); 
</script> //Credit cymen

形:

<form action="form.php" method="post">

<input id="box" class="box" name="box" type="checkbox" value="YESSSSSS!" />
<input id="box" class="box" name="box" type="checkbox" value="YESSSSSS!" />

</form>

(*)私は何もしません$_POST['box']

4

3 に答える 3

3

JavaScriptはこのデータをPHPに送信しています。

 {id: checkbox.attr('id'), value: isChecked}

そこには「id」と「value」の2つのデータがあります。「ボックス」と呼ばれるデータ$_POST['box']がないため、データは入力されません。

于 2013-02-15T11:47:58.993 に答える
0

私は次のように変更します:

$.post('/form.php', {name: checkbox.attr('name'), checked: isChecked, value : checkbox.val()});

PHP 側では、以下を受け取ります。

Array
(
    [name] => box
    [checked] => true
    [value] => YESSSSSS!
)

次のような POST データにアクセスできます。

echo $_POST['name']; // box
echo $_POST['checked']; // true/false
echo $_POST['value']; // YESSSSSS!

どのチェックボックスが変更されたかを識別する唯一の方法であるため、POST リクエストにチェックボックスの値を含めることが重要です。

于 2013-02-15T12:03:36.943 に答える
0

form.php に送信した $_POST 配列は $_POST['box'] ではありません。次のようになります。

array(2) {["id"]=>string(3) "box" ["value"]=> string(4) "true"}

したがって、この $_POST['id'] または $_POST['value'] のような変数を取得できます。このフラグメントで JS の変数を宣言しています: {id:checkbox.attr('id'), value:isChecked}。

var_dump を使用して vars にあるものを PHP でチェックインすることをお勧めします。var_dump($_POST)。

Firebug プラグインを FF に使用して、AJAX をデバッグします。

于 2013-02-15T11:57:04.873 に答える