Ajax数据变量让我感到困惑,如果我只使用Javascript,我应该放什么?(没有JSON或JQuery)
昨天,我开始学习如何使用AJAX,我看到了这个页面:在这里,一切都得到了很好的解释。因此,我编码了下一个:Ajax数据变量让我感到困惑,如果我只使用Javascript,我应该放什么?(没有JSON或JQuery),javascript,php,mysql,ajax,Javascript,Php,Mysql,Ajax,昨天,我开始学习如何使用AJAX,我看到了这个页面:在这里,一切都得到了很好的解释。因此,我编码了下一个: if(isset($_POST['edited'])) { $real_name = mysqli_real_escape_string($conn, $_POST['real_name']); $email = mysqli_real_escape_string($conn, $_POST['email']); $gender = mysqli_real_esca
if(isset($_POST['edited'])) {
$real_name = mysqli_real_escape_string($conn, $_POST['real_name']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
$gender = mysqli_real_escape_string($conn, $_POST['gender']);
$date_day = mysqli_real_escape_string($conn, $_POST['date_day']);
$date_month = mysqli_real_escape_string($conn, $_POST['date_month']);
$date_year = mysqli_real_escape_string($conn, $_POST['date_year']);
$final_date = $date_day."-".$date_month."-".$date_year;
$location = mysqli_real_escape_string($conn, $_POST['location']);
$web_title = mysqli_real_escape_string($conn, $_POST['web_title']);
$web_url = mysqli_real_escape_string($conn, $_POST['web_url']);
$skype = mysqli_real_escape_string($conn, $_POST['skype']);
if($my_stats['real_name'] != $_POST['real_name']) {
mysqli_query($conn, "UPDATE users SET real_name = '$real_name' WHERE id = '$my_id'");
}
if($my_stats['email'] != $_POST['email']) {
$act = md5(time());
mysqli_query($conn, "UPDATE users SET email = '$email' WHERE id = '$my_id'");
mysqli_query($conn, "UPDATE users SET activation = '$act' WHERE id = '$my_id'");
mail($email, 'GimmeAHit! - Activación de correo', '¡Hola! Para activar tu cuenta visita el siguiente link: http://'.$_SERVER['SERVER_NAME'].'/?action=act&code='.$act);
}
if($my_stats['gender'] != $_POST['gender']) {
mysqli_query($conn, "UPDATE users SET gender = '$gender' WHERE id = '$my_id'");
}
if($my_stats['birthdate'] != $final_date) {
mysqli_query($conn, "UPDATE users SET birthdate = '$final_date' WHERE id = '$my_id'");
}
if($my_stats['location'] != $_POST['location']) {
mysqli_query($conn, "UPDATE users SET location = '$location' WHERE id = '$my_id'");
}
if($my_stats['web_title'] != $_POST['web_title']) {
mysqli_query($conn, "UPDATE users SET web_title = '$web_title' WHERE id = '$my_id'");
}
if($my_stats['web_url'] != $_POST['web_url']) {
mysqli_query($conn, "UPDATE users SET web_url = '$web_url' WHERE id = '$my_id'");
}
if($my_stats['skype'] != $_POST['skype']) {
mysqli_query($conn, "UPDATE users SET skype = '$skype' WHERE id = '$my_id'");
}
}
还有我的AJAX调用:
echo '<script>
function showUpdateNode(elem) {
elem.parentNode.childNodes[1].style.display = "none";
elem.parentNode.childNodes[2].style.display = "inline";
elem.parentNode.childNodes[3].style.display = "none";
}
function sendSForm() {
var real_name = document.getElementById("real_name").value;
var date_day = document.getElementById("day_select").value;
var date_month = document.getElementById("month_select").value;
var date_year = document.getElementById("year_select").value;
var gender = document.getElementById("gender").value;
var location = document.getElementById("location").value;
var web_title = document.getElementById("website_title").value;
var web_url = document.getElementById("website_url").value;
var skype = document.getElementById("skype").value;
var email = document.getElementById("email").value;
var dataString = "real_name="+real_name+"&date_day="+date_day+"&date_month="+date_month+"&date_year="+date_year+"&gender="+gender+"&location="+location+"&web_title="+web_title+"&web_url="+web_url+"&skype="+skype+"&email="+email+"&edited=a";
$.ajax({
type: "POST",
url: "/sources/edit_profile.php",
data: dataString,
cache: false,
success: function() {
document.location.reload(true);
}
});
return false;
}
</script>';
echo'
函数showUpdateNode(元素){
elem.parentNode.childNodes[1].style.display=“无”;
elem.parentNode.childNodes[2].style.display=“inline”;
elem.parentNode.childNodes[3].style.display=“无”;
}
函数sendSForm(){
var real_name=document.getElementById(“real_name”).value;
var date\u day=document.getElementById(“day\u select”).value;
var date\u month=document.getElementById(“month\u select”).value;
var date\u year=document.getElementById(“year\u select”).value;
var-gender=document.getElementById(“性别”).value;
var location=document.getElementById(“location”).value;
var web_title=document.getElementById(“网站标题”).value;
var web_url=document.getElementById(“网站url”).value;
var skype=document.getElementById(“skype”).value;
var email=document.getElementById(“email”).value;
var dataString=“real_name=“+real_name+”&date_day=“+date_day+”&date_month=“+date_month+”&date_year=“+date_year+”&gender=“+gender+”&location=“+location+”&web_title=“+web_title+”&web_url=“+web_url+”&skype=“+skype+”&email=“+email+”&edited=a”;
$.ajax({
类型:“POST”,
url:“/sources/edit_profile.php”,
数据:dataString,
cache:false,
成功:函数(){
文档。位置。重新加载(true);
}
});
返回false;
}
';
所有内容都在同一个文件中,但由于某种原因,当我调用AJAX时,什么都没有发生
我试图通过success:function(html){alert(html);}
和if(isset($_POST['edited']){echo“ok!”}
了解到底发生了什么,但警报是空的
可能是dataString
变量出了问题,您能看到我哪里出了问题吗?有什么建议吗
Edit控制台中没有错误:/(我认为错误在PHP中,但我认为一切正常……打开浏览器的控制台窗口(F12)并查找错误。您确定调用了
sendSForm()
吗?就在$.ajax()之前的dataString
的值是多少
call?顺便说一句,$.ajax()
是一种jQuery方法,因此您可能需要重新考虑标题。您的success:function(html){alert(html);}
将为空,因为您在ajax中没有任何内容。此外,您的表是否已更新?这与问题无关,只是一个重构建议:使用数组!创建一个包含性别、生日等的数组,并循环该数组。在循环中,将$my_stat[$field]
与$\u POST进行比较[$field]
查询可以是“更新用户集$field=”。$\u POST['gender']。“'WHERE id='$my_id'”
谢谢,@JustinE,我用你的解决方案修复了它…我忘了查看错误日志…问题是当你从AJAX调用PHP文件时,mysql没有包括在内…:P