Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax数据变量让我感到困惑,如果我只使用Javascript,我应该放什么?(没有JSON或JQuery)_Javascript_Php_Mysql_Ajax - Fatal编程技术网

Ajax数据变量让我感到困惑,如果我只使用Javascript,我应该放什么?(没有JSON或JQuery)

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

昨天,我开始学习如何使用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_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