这是我能想到的最好的描述。我通常不会发帖,但老实说,我无法解决这个问题。
仍处于jquery学习模式,基本上我想要完成的是,根据提交的按钮类型,脚本将变量分配给页面上的div。我正在制作的是用户脚本的管理员端,以允许他们更新页面上显示的特定div。
当我放入实际的选择器时,脚本可以正常工作。
当页面加载时,它将采用与之对应的数据库字段并加载它。一旦他们按下更新按钮,就会出现一个新的div。管理员输入他的新数据(他想要显示的新信息)并更新mysql表,然后通过jquery的ajax将其拉回来。
很抱歉很长的解释。就像我说的那样,我从未真正发布过,只是总是喜欢自己搞清楚。 php页面
<?php //
if(isLoggedIn())
{
echo '<button id="adultClassButton">Edit Class Information</button>';
}
?>
<div class="class" id="adultClass"><?php
$row = checkPost('adult');
echo $row['info'];
?>
</div>
<?php
echo '<div id="adultClassInput">
<textarea rows="2" cols="80" id="adultClassUpdate"></textarea>
<input type="hidden" id="className" name="adult"/>
<button id="adult">Save the Updated Class Info</button></div>';
?>
javascript(jquery)文件
$(".button").click(function(){
var button = $(this).attr('id');
if (button == 'adult'){
var classDiv = $("#adultClass");
var className = $("#className");
var classDesc = $("#adultClassUpdate").val();
var classUpdateDiv = $("#adultClassInput");
postData(classDiv, className, classDesc, classUpdateDiv);
}
});
function postData(classDiv, className, classDesc, classUpdateDiv){
$.ajax({
url: 'insert.php',
type: 'POST',
data: "name="+ className+ "& info="+ classDesc,
success:function(data){
$("#" + classDiv).html(data);
}
})
$("#" + classDesc).val('');
$("#" + classUpdateDiv).hide();
}
就像我说的,如果我在函数中有正常的选择器,它就可以正常工作。但就目前而言,我只是感到难以理解。
非常感谢!
答案 0 :(得分:0)
你的功能应该是这样的:
function postData(classDiv, className, classDesc, classUpdateDiv){
$.ajax({
url: 'insert.php',
type: 'POST',
data: {"name": className.val(), "info": classDesc}
success:function(data){
classDiv.html(data);
}
})
$("#"+classDesc).val('');
classUpdateDiv.hide();
}
因为你已经将jquery对象(不是字符串)传递给你的函数,classDesc
除外。
希望这会有所帮助。干杯
答案 1 :(得分:0)
classDiv是一个jquery对象,而不是元素的ID。所以当你使用这个
$("#" + classDiv).html(data);
这不按预期工作。
尝试
classDiv.html(data);