2015-11-29 2 views
1

Я не могу заставить оповещение работать после отправки данных в ajax? Может ли кто-нибудь сказать мне, что я делаю неправильно?print ajax response with php

Моя форма:

<body> 

<form action="" id="form1" method="post"> 
    First name:<br> 
    <input type="text" name="firstname" value="Mickey"> 
    <br> 
    Last name:<br> 
    <input type="text" name="lastname" value="Mouse"> 
    <br><br> 
    <input type="submit" id="submit1" value="Submit"> 
</form> 

<!-- jQuery library --> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 

<!-- Latest compiled JavaScript --> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> 


<script> 
    // AJAX SEND POST DATA 
    $('form').on('submit', function() { 
     var self = this; 
     $.ajax({ 
      type: 'post', 
      url: 'submit2.php', 
      dataType: 'json', 
      data: $(self).serialize(), 
      success: function() { 
       alert("blabla");      
      } 
     }); 
    }); 
</script> 

Это мой файл submit2.php.

<?php echo "bla"; ?> 

ответ

1

У вас нет проблем с кодом HTML или JQuery. Проблема заключается в файле submit2.php. Функция AJAX ищет ответ JSON. Возвращает ответ в формате JSON от submit2.php

submit2.php

echo json_encode(array("message"=>"Here is the message")); 
+0

Спасибо, но он не работает, не уверен, что происходит. – tadalendas

+0

Является ли ваш файл submit2.php в том же каталоге? Если не настроить путь. Если у вас есть хром, проверьте консоль и вкладку сети. Если вы пытаетесь распечатать полученные данные, сделайте небольшое изменение в JQuery. 'success: function (data) {if (data.message! = undefined) {console.log (message);}}, error: function (data) {console.log (data);}' Если все еще у вас проблема , дайте мне знать более подробно. – Scorpion

+0

Мне удалось заставить его работать, не используя dataType: json – tadalendas

1

Ваш код должен выглядеть так:

HTML

<form action="" id="form1" method="post"> 
    First name:<br> 
    <input type="text" name="firstname" value="Mickey"> 
    <br> 
    Last name:<br> 
    <input type="text" name="lastname" value="Mouse"> 
    <br><br> 
    <input type="submit" id="submit1" value="Submit"> 
</form> 

JQuery

$("#form1").submit(function(e){ 
    e.preventDefault(); 
    var self = this; 
    $.ajax({ 
     type: 'post', 
     url: 'submit2.php', 
     // dataType: 'json', unless you're expecting json object as server response, remove this 
     data: $(self).serialize(), 
     success: function(data) { 
      alert(data);      
     }, 
     error: function(jqXHR, textStatus, errorThrown){ 
      alert(errorThrown); 
     } 
    }); 
}); 

submit2.php

<?php 

    if(isset($_POST['firstname']) && isset($_POST['lastname'])){ 
     echo $_POST['firstname'] . " " . $_POST['lastname']; 
    } 

?> 
+0

Спасибо, но не может получить окно предупреждения появляться с помощью, ваш код. Не знаете, почему – tadalendas

+0

Sidenote: всегда отлаживайте свой код с помощью [firebug addon] (https://addons.mozilla.org/en-us/firefox/addon/firebug/). –

+0

Спасибо, поэтому я прокомментировал dataType: json, и предупреждение начало работать – tadalendas