复选框后的Jquery操作


Jquery Action after Checkbox

这是我的JQuery:

我有

当我点击复选框时,

它将显示警报,并将值$name发送到b.php文件,它将在源文件的div#阶段中显示b.php抛出的值。

但问题是,它显示了结果,但没有显示b.php文件返回的值。我做错了什么?

<form id="myform">
    <input type="checkbox" name="check1" value="check1" onClick="cbChanged(this);" />
    <input type="checkbox" name="check2" value="check2" onClick="cbChanged(this);" />
</form>
<script>
cbChanged = function(checkboxElem) {
  if (checkboxElem.checked) {
     var name=$("#txt").val();   
       $.post("b.php",
             {name: name}).done(function(data){
              $('#stage').html(data);
               }
          );
    alert("That box was checked.");
  } else {
    alert("That box was unchecked.");
  }
}
</script>
<div id='stage'></div>

这是的代码b.php

<?php
$name=$_REQUEST['$name'];
echo $name.'is updated';
?>

我犯的错误是什么。我该怎么解决这个问题?

请帮帮我。

<?php
$name=$_REQUEST['$name'];
echo $name.'is updated';
?>

将其更改为

<?php
$name=$_REQUEST['name'];
echo $name.'is updated';
?>

您的代码中有两个错误:

第一:您在$_REQUEST中传递了错误的索引值尝试以下操作:

<?php
    $name=$_REQUEST['name'];
    echo $name.'is updated';
?>

第二:您正在尝试获取id为"#txt"的元素的值,但该元素不存在。尝试以下操作:

<script>
    cbChanged = function(checkboxElem) {
      if (checkboxElem.checked) {           
           $.post("b.php",
                 {name: "Hello"}).done(function(data){
                  $('#stage').html(data);
                   }
              );
        alert("That box was checked.");
      } else {
        alert("That box was unchecked.");
      }
    }
</script>

由于您评论说您从$_REQUEST['$name']更正了$_REQUEST['name'],并且假设您已经在页面中导入了jquery,并且您有一个带有id='txt'的输入元素(或具有value属性的元素),所以您所需要做的就是在post-methods第二个参数中的键名周围加上一些引号(因为您已经有一个具有该名称的变量),我想你应该很好(@Regent,谢谢你指出键值对在技术上是有效的,即使我不喜欢它。虽然我不确定小提琴证明了什么,因为它是客户端的,你在发布之前提醒了变量的值;但我再次测试,发现我错了)。

在你仍然无法得到PHP回复的情况下,因为我已经回答了,这对我来说很好:

<!-- HTML + JS -->
<script src="../../js/jquery-1.10.2.min.js"></script>
<form id="myform">
    <input type="checkbox" name="check1" value="check1">
    <input type="checkbox" name="check2" value="check2">
    <input id="txt" value="test">
</form>
<div id="stage"></div>
<script>
    $('#myform [type=checkbox]').change(function(){
        $.post('b.php', {name:$('#txt').val()}, function(data){
            $('#stage').append(data + "<br/>");
        });
    });
</script>

b.php:

<?php
    $name = $_REQUEST["name"];
    echo $name." is updated";
?>