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.";    
}

Ответ 1

Попробуйте это

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

Ответ 2

попробуйте, но сначала убедитесь, что вы ответите console.log(ответ) на успех 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){
        if(response === 1){
            //load chech.php file  
        }  else {
            //show error
        }
        }
    });
});
});

Ответ 3

<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>

Ответ 4

У меня была такая же проблема: Вы должны выполнить неэтериализацию данных на стороне php.

Добавить в начало вашего php файла (Внимание, эта короткая версия заменит все остальные пост-переменные):

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

Ответ 5

Измените свой код следующим образом:

<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;    
}
?>

Ответ 6

Ваша проблема в вашем php файле. Когда вы используете метод jquery serialize(), вы отправляете строку, поэтому вы не можете рассматривать ее как массив. Сделайте var_dump($_post), и вы увидите, о чем я говорю.

Ответ 7

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>