web-dev-qa-db-ja.com

jQuery AJAX PHP=

コードにこだわっています。フォームから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.";    
}
13
gomzy

これを試して

 $(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);  
            }
        });
    });
    });
12

それを試してみてください、しかし最初に、サーバーからの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
        }
        }
    });
});
});
7
Always Sunny
<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スクリプトで確認する必要があります。

4
Ananta Prasad

私はちょうど同じ問題を抱えていた:あなたはPHP側でデータを非シリアル化する必要があります。

Phpファイルの先頭に追加します(この短いバージョンは他のすべての投稿変数を置き換えることに注意してください):

parse_str($_POST["data"], $_POST);
1
ToHe

コードを次のように変更します-

<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;    
}
?>
0
Chetan Gawai

問題はphpファイルにあります。 jquery serialize()メソッドを使用すると、文字列を送信するため、配列のように扱うことはできません。 var_dump($_post)を作成すると、私が話していることがわかります。

0
Alcides
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>
0
karthikeyan