このコードでは、変数の 1 つしか渡すことができません。このように見える場合は、firstname
変数を渡すことしかできません。誤ってつづりを間違えfistname
たとき(データを投稿するように設定したとき)、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>