Php Can';t使用ajax发布多个变量
我只能传递此代码中的一个变量。如果看起来像这样,我只能传递Php Can';t使用ajax发布多个变量,php,ajax,jquery,mysqli,Php,Ajax,Jquery,Mysqli,我只能传递此代码中的一个变量。如果看起来像这样,我只能传递firstname变量。当我不小心拼错了fistname(当我将数据设置为post时),则只传递了lastname变量。所以我希望能够发布这两个变量,这是我的问题 var firstname = $("#firstname").val(); var lastname = $("#lastname").val(); $.ajax({ type: "POST", url: "modify_profile.php", d
firstname
变量。当我不小心拼错了fistname
(当我将数据设置为post时),则只传递了lastname
变量。所以我希望能够发布这两个变量,这是我的问题
var firstname = $("#firstname").val();
var lastname = $("#lastname").val();
$.ajax({
type: "POST",
url: "modify_profile.php",
data: { firstname: firstname, lastname: lastname },
success: function( data){
}
});
我还试着写:data:{“firstname”:firstname,“lastname”:lastname},但这也不起作用
这是完整的代码。这是我的文件modify_profile.php。所有事情都发生在这个文件中
<!Doctype HTML>
<html>
<head>
<title> Resor </title>
</head>
<body>
<?php
require("../db/connect.php");
$email='test@gmail.com';
// Hämtar all data från personen som är inloggad
$sql="SELECT * from user WHERE email='$email'";
$query=mysqli_query($dbcon,$sql);
$result=mysqli_fetch_array($query);
$firstname=$result['first_name'];
$lastname=$result['last_name'];
$password=$result['password'];
// HERE IS WHERE FIRSTNAME IS CHANGED IN CASE IT HAS BEEN UPDATED.
if( isset($_POST['firstname']))
{
$firstname=( $_POST['firstname']);
$query=mysqli_query($dbcon, "UPDATE user SET first_name='$firstname' WHERE email='$email'");
$result = mysqli_query($dbcon,$query);
if (!$result) {
die("MySQL error ".mysqli_errno().": ".mysqli_error()."\n<br>When executing <br>\n$query\n<br>");
}
}
// HERE IS WHERE LASTNAME IS CHANGED IN CASE IT HAS BEEN UPDATED.
if( isset($_POST['lastname']))
{
$lastname=( $_POST['lastname']);
$query=mysqli_query($dbcon, "UPDATE user SET last_name='$lastname' WHERE email='$email'");
$result = mysqli_query($dbcon,$query);
if (!$result) {
die("MySQL error ".mysqli_errno().": ".mysqli_error()."\n<br>When executing <br>\n$query\n<br>");
}
}
echo "<p> Namn: $firstname $lastname <span id=name> Ändra</span> </p>";
?>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> </script>
<script>
$(document).ready(function(){
$('#name').on('click', function() {
var node = "<form action='modify_profile.php' method='post'><p>Förnamn: <input type='text' name='firstname' id='firstname'value='<?=$firstname?>' ></p><p>Efternamn: <input type='text' name='lastname' id='lastname' value='<?=$lastname?>'></p><p>Vänligen mata in ditt lösenord för att bekräfta ändringen.</p> <p> Lösenord:<input type='password' name='password' id='password'></p><input type='button' value='Spara ändringar' id='confirm_name'/><input type='button' value='Avbryt' id='cancel_name_change' /></form>";
$(this).parent().after(node);
$(this).parent().remove();
});
//if the confirm button has been pressed
$(document).on('click', '#confirm_name', function(){
var firstname = $("#firstname").val();
var lastname=$("#lastname").val();
var password=$("#password").val();
if(password!='<? echo "$password"; ?>'){
alert("No changes has been made due to wrong password.");
}
else{
$.ajax({
type: "POST",
url: "modify_profile.php",
data: {"firstname":firstname,"lastname":lastname},
success: function( data){
}
});
}
});
// if interrupted
$(document).on('click', '#cancel_name_change', function(){
location.reload();
});
//slutparentes
});
</script>
<?php require("../db/close.php")
?>
</body>
</html>
原因
这是正确的语法。您是否尝试在modify\u profile.php
文件中print\r($\u POST)
?打开firebug控制台并检查ajax请求中发送的参数。问题可能来自于您的php代码,您能否向我们展示modify\u profile.php的代码?(仅获取变量的部分)显示请求本身工作正常。它当然会给出404,因为找不到php文件,但是如果您在浏览器中检查inspector的Network选项卡,您将看到这两个值都正确显示。您的代码中还出现了其他问题,或者问题出在PHP部分。我同意其他人的看法。。问题似乎出在modify_profile.php中。。。如果可以,请共享代码。。。