Ajax вставить значение null в базу данных

Когда я предупреждаю все значения полей, они выглядят идеально, но когда я пытаюсь вставить в БД, используя PHP, все значения null, Что происходит?

Вот мой HTML

<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';
}

0

Решение

Прежде всего, как указано в комментариях к вам вопрос $("#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",
});
0

Другие решения

Пожалуйста, измените ваш 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/

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector