这是我的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";
?>