我试图通过ajax更新学生的个人资料,脚本运行良好我得到了dataString中传递的所有值,但是当通过ajax调用savebasic.php时,它没有更新字段的值。
的Jscript:
<script type="text/javascript" src="http://ajax.googleapis.com/
ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".savestudent").click(function() {
var _firstname=$("#firstname").html();
var _lastname=$("#lastname").html();
var _gender=$("#gender").html();
var _location=$("#location").html();
var _aboutme=$("#about").html();
var _dob=$("#dob").html();
var dataString= 'fname='+ _firstname + '&lname='+ _lastname + '&gender='+ _gender + '&location='+ _location + '&about='+ _aboutme + '&dob='+ _dob ;
alert(dataString);
$.ajax
({
type: "POST",
url: "savebasic.php",
data: dataString,
cache: false,
success: function(html)
{
alert('success');
},
error: function(html)
{
}
});
});
});
</script>
savebasic.php:
<?php
include_once('controller/profile.controller.php');
$profileObject=new ProfileController();
$fname=$_POST['fname'];
$lname=$_POST['lname'];
$gender='M';
$loc=$_POST['location'];
$about=$_POST['about'];
$birth=$_POST['dob'];
$upt=$profileObject->updateUserprofile('59',$fname,$lname,$birth,$gender,$loc,$about);
?>
如果我直接在savebasic.php上传递值,它就可以了。但是在通过ajax时却什么也没做。
答案 0 :(得分:1)
您正在以错误的方式在ajax中使用数据字段。你应该这样做:
data:{'fname=': _firstname, 'lname=':_lastname,'gender=':_gender,'location=': _location}
答案 1 :(得分:0)
您的数据字符串设置为GET - 正常的语法是:
data: {'fname': _firstname, 'lname':_lastname .... }
答案 2 :(得分:0)
Change your code to assign data in following way
<script type="text/javascript" src="http://ajax.googleapis.com/
ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".savestudent").click(function() {
var _firstname=$("#firstname").html();
var _lastname=$("#lastname").html();
var _gender=$("#gender").html();
var _location=$("#location").html();
var _aboutme=$("#about").html();
var _dob=$("#dob").html();
var data= { fname:_firstname,
lname:_lastname,
gender=: _gender ,
location:_location,
about: _aboutme,
dob: _dob};
alert(data);
$.ajax
({
type: "POST",
url: "savebasic.php",
data: data,
cache: false,
success: function(html)
{
alert('success');
},
error: function(html)
{
}
});
});
});
</script>
此外,从元素中获取值不正确。 如果firstname,lastname和其他字段在文本框中,那么您应该访问这些字段。
var _firstname=$("#firstname").val();
或者如果它们是span或div标签,那么访问像这样的
var _firstname=$("#firstname").text();
答案 3 :(得分:0)
您的数据部分是错误的。你还忘了提到dataType
我已经编辑了你的代码。
检查出来:
<script type="text/javascript" src="http://ajax.googleapis.com/
ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".savestudent").click(function() {
var _firstname=$("#firstname").html();
var _lastname=$("#lastname").html();
var _gender=$("#gender").html();
var _location=$("#location").html();
var _aboutme=$("#about").html();
var _dob=$("#dob").html();
// var dataString= 'fname='+ _firstname + '&lname='+ _lastname + '&gender='+ _gender + //'&location='+ _location + '&about='+ _aboutme + '&dob='+ _dob ;
// alert(dataString);
$.ajax
({
type: "POST",
contentType: 'text/html',
dataType: 'text',
url: "savebasic.php",
data: {
fname: _firstname, lname :_lastname, gender :_gender, location : _location
,about : _aboutme , dob : _dob
},
cache: false,
success: function(html)
{
alert('success');
},
error: function(html)
{
}
});
});
});
</script>
这将为您提供100%正确的结果。