Я застрял в своем коде, мне нужно отправить данные из формы на страницу 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); } }); }); });
попробуйте, но сначала убедитесь, что вы ответите 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 } } }); }); });
<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-файла (Внимание, эта короткая версия заменит все остальные пост-переменные):
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>