【发布时间】:2018-06-22 19:19:20
【问题描述】:
我还是个菜鸟,还在学习,但我不明白为什么来自 AJAX 调用的数据没有成功传递到 PHP 中。
我哪里出错了?我确实花了几个小时,我不明白为什么 AJAX 调用没有将它发布到 PHP 中。我相信ajax调用中“数据:名称+电子邮件”的数据属性一定有问题,或者PHP端从AJAX检索数据帖子有问题......
我完全糊涂了…… 感谢您的帮助(对我放轻松!)
谢谢
<?php
include_once 'db.php';
$fullname = $_POST['name'];
$email = $_POST['email'];
//this is the new stuff we are putting in
mysqli_select_db('table1');
if(isset($_POST['email']))
{
$checkdata = "SELECT signup_email_of_user FROM table1 WHERE signup_email_of_user = '$email'";
$query = mysqli_query($conn, $checkdata);
if(mysqli_num_rows($query) > 0)
{
echo "err";
exit();
}
else {
$sql = "INSERT INTO table1 (signup_name_of_user, signup_email_of_user) VALUES ('$fullname', '$email')";
mysqli_query($conn, $sql);
echo 'ok';
die;
}
}
?>
function submitform1(){
var reg = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i;
var name = $('#signup_name_of_user').val();
var email = $('#signup_email_of_user').val();
if(name.trim() == '' ){
alert('Please enter your name.');
$('#signup_name_of_user').focus();
return false;
}else if(email.trim() == '' ){
alert('Please enter your email.');
$('#signup_email_of_user').focus();
return false;
}else if(email.trim() != '' && !reg.test(email)){
alert('Please enter valid email.');
$('#signup_email_of_user').focus();
return false;
}else{
$.ajax({
type:'POST',
url:'test_signup.php',
data: name+email,
beforeSend: function () {
$('.btn-light').attr("disabled","disabled");
$('.sign-up').css('opacity', '.5');
},
success: function(msg){
if(msg == 'ok'){
$('#signup_name_of_user').val('');
$('#signup_email_of_user').val('');
$('.statusMsg').html('<span style="color:green;">Thanks for contacting us, we\'ll get back to you soon.</p>');
}else{
$('.statusMsg').html('<span style="color:red;">Some problem occurred, please try again.</span>');
}
}
});
}
}
【问题讨论】:
-
数据:姓名+邮箱,有问题
-
您的代码容易受到SQL injection attacks 的攻击。您应该通过mysqli 或PDO 驱动程序使用带有绑定参数的准备好的语句。 This post 有一些很好的例子。
-
他还没有开始写那部分,他没有得到数据。我相信他会解决的。 :)
标签: javascript php mysql ajax