コードにこだわっています。フォームからcheck.phpページにデータを送信してから処理する必要があります。
これは私のコードです:
AJAX部分:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var form=$("#myForm");
$("#smt").click(function(){
$.ajax({
type:"POST",
url:form.attr("action"),
data:form.serialize(),
success: function(response){
console.log(response);
}
});
});
});
</script>
フォーム:
<form action="check.php" method="post" name="myForm" id="myForm">
<input type="text" name="user" id="user" />
<input type="text" name="pass" id="pass" />
<input type="button" name="smt" value="Submit" id="smt" />
</form>
<div id="err"></div>
pHPの部分:
$user=$_POST['user'];
$pass=$_POST['pass'];
if($user=="tony")
{
echo "HI ".$user;
}
else
{
echo "I dont know you.";
}
これを試して
$(document).ready(function(){
var form=$("#myForm");
$("#smt").click(function(){
$.ajax({
type:"POST",
url:form.attr("action"),
data:$("#myForm input").serialize(),//only input
success: function(response){
console.log(response);
}
});
});
});
それを試してみてください、しかし最初に、サーバーからのajaxの成功時にconsole.log(response)に何が返されるかを確認してください
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var form=$("#myForm");
$("#smt").click(function(){
$.ajax({
type:"POST",
url:form.attr("action"),
data:form.serialize(),
success: function(response){
if(response === 1){
//load chech.php file
} else {
//show error
}
}
});
});
});
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var form=$("#myForm");
$("#smt").click(function(){
$.ajax({
type:"POST",
url:form.attr("action"),
data:form.serialize(),
success: function(response){
console.log(response);
}
});
});
});
</script>
これは完璧なコードです。問題はありません。PHPスクリプトで確認する必要があります。
私はちょうど同じ問題を抱えていた:あなたはPHP側でデータを非シリアル化する必要があります。
Phpファイルの先頭に追加します(この短いバージョンは他のすべての投稿変数を置き換えることに注意してください):
parse_str($_POST["data"], $_POST);
コードを次のように変更します-
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var form=$("#myForm");
$("#smt").click(function(){
$.ajax({
type:"POST",
url:form.attr("action"),
data:form.serialize(),
success: function(response){
if(response == 1){
$("#err").html("Hi Tony");//updated
} else {
$("#err").html("I dont know you.");//updated
}
}
});
});
});
</script>
PHP-
<?php
$user=$_POST['user'];
$pass=$_POST['pass'];
if($user=="tony")
{
echo 1;
}
else
{
echo 0;
}
?>
問題はphpファイルにあります。 jquery serialize()
メソッドを使用すると、文字列を送信するため、配列のように扱うことはできません。 var_dump($_post)
を作成すると、私が話していることがわかります。
Try this its working..
<script>
$(function () {
$('form').on('submit', function (e) {
e.preventDefault();
$.ajax({
type: 'post',
url: '<?php echo base_url();?>student_ajax/insert',
data: $('form').serialize(),
success: function (response) {
alert('form was submitted');
}
error:function()
{
alert('fail');
}
});
});
});
</script>