私はこれを機能させることができないようです。私はスタックオーバーフローとJQuery doc Webサイト自体でこれを一日中調査してきましたが、何をしてもうまくいかないようです。
HTML フォーム (および JQuery post 関数の JavaScript) は次のとおりです。
<script>
function checkForm(){
// variable to hold request
var request;
// bind to the submit event of our form
$("#rchar").submit(function(event){
// abort any pending request
if (request) {
request.abort();
}
// setup some local variables
var $form = $(this);
// let's select and cache all the fields
var $inputs = $form.find("input, select, button, textarea");
// serialize the data in the form
var serializedData = $form.serialize();
// fire off the request to /form.php
request = $.ajax({
url: 'postregister.php',
type: "POST",
data: serializedData,
success: function(result){
console.log(result);
},
error: function(){
console.log('error');
}
});
// callback handler that will be called on success
request.done(function (response, textStatus, jqXHR){
$("#navigation").html(serializedData);
});
// callback handler that will be called on failure
request.fail(function (jqXHR, textStatus, errorThrown){
// log the error to the console
console.error(
"The following error occured: "+
textStatus, errorThrown
);
});
// prevent default posting of form
event.preventDefault();
});
}
</script>
<form id="rchar" method="POST" action="postrenamecharacter.php">
<h3>Test Form!</h3>
<table id="leftalignment1">
<tbody>
<tr><td>Name: </td><td><input type="text" size="35px" id="name" value="" placeholder="Name" name="name"><input type="hidden" value="Test" id="hidden" name="hidden"></td></tr>
<tr><td>Password:</td><td><input type="password" size="35px" placeholder="Password" id="password" name="password"></td><td></td></tr>
</tbody>
</table><br><br>
<input action="submit" value=" Register " id="submit" type="submit"><br>
</form>
したがって、応答は Java ターミナルにポストされ、JQuery POST 変数がナビゲーション バーにロードされます。ナビゲーションバーには、これを読むことで正しい変数があります:
"name=Jeremy&hidden=Test&password=thisisatest"
これが「postregister.php」という PHP 関数です。
<?php
$oldname = $mysqli->real_escape_string($_POST['hidden']);
$password = $mysqli->real_escape_string($_POST['password']);
$title = "Your password is: ";
echo $title . "<br>" . $password . "<br>Your old name was: <br>" . $oldname;
?>
問題は、PHP コードがこれのみを返すことです。
"Your password is: <br><br>Your old name was: <br>"
したがって、明らかに、PHP 変数は JQuery から PHP POST フォームに渡されません。助けてくれる人はいますか?本当に、本当に感謝しています!
ありがとうございます^_^