当我提醒所有字段值时,它们看起来很完美,但是当我尝试使用 PHP 插入数据库时,所有值都null
。发生了什么事情?
这是我的网页
<form action="ajax.php" id="myform" method="post">
<input type="hidden" id="userid" name="userid" value="<?php echo $user_id; ?>" />
<input type="hidden" id="courseid" name="courseid" value="1" />
<li class="active">
<div id="#mybox">
<a class="" id="media-play1" state="1"><i class="fa fa-play-circle-o"></i> Welcome <p>55s</p></a>
</div>
</li>
</form>
JQuery Ajax
$("#media-play1").on("click",function(e){
e.preventDefault();
var userid = $("#userid").val();
var courseid = $("#courseid").val();
var coursename = $("#coursename").text();
alert(userid);
alert(courseid);
alert(coursename);
$.ajax({
url: 'ajax.php',
async: true,
cache: true,
data: alert("userid=" + userid + "&courseid=" + courseid + "&coursename=" + coursename),
type: 'POST',
//data:alert($(this).serialize()),
success: function(){alert('success');},
//dataType: "json",
}); });
我的 PHP 文件
session_start();
include_once('admin/conn.php');
if(isset($_POST['userid'])){
echo $userid = $_POST['userid'];
echo $courseid = $_POST['courseid'];
echo $coursename = $_POST['coursename'];
$queryin = mysql_query("INSERT INTO `tranings` (`id`, `userid`, `courseid`, `traninigname`) VALUES ('','".$userid."','".$courseid."','".$coursename."')") or die(mysql_error());
if($queryin){
echo 'insert';
} else {
echo 'not insert';
}
请像这样更改您的Ajax
呼叫:
$.ajax({
url: 'ajax.php',
async: true,
cache: true,
data: "userid=" + userid + "&courseid=" + courseid + "&coursename=" + coursename,
type: 'POST',
//data:alert($(this).serialize()),
success: function(){alert('success');},
//dataType: "json",
});
在数据中使用警报。除此之外,我还建议使用serialize
方法,它更好的选择是以下示例:http://api.jquery.com/serialize/
首先,
正如您问题的评论中所述,$("#coursename")
元素不在您提供的 html 中,因此var coursename = $("#coursename").text();
等于什么都没有。
至于为什么你的数据没有传递给你的php的问题,你正在传递一个对alert()
的调用作为你的ajax调用中的数据属性,而它应该是一个返回数据的函数或类似的对象
$.ajax({
url: 'ajax.php',
async: true,
cache: true,
data: {
userid: userid,
courseid: courseid,
coursename: coursename
},
type: 'POST',
//data:alert($(this).serialize()),
success: function(data){
console.log(data); // log the returned data
alert('success');
},
//dataType: "json",
});