2013-08-10 4 views
0

проблемы все еще там ... Просьба помочьAJAX Jquery Php форма не работает

Я не могу загрузить внешний файл, используя AJAX JQuery. Я хочу использовать JQuery ajax для всплывающей формы, затем проверить, ввести данные в mysql. но начиная с простой функции ajax. любезно дайте мне знать, где я буду неправильно

<link rel="stylesheet" type="text/css" media="all" href="test_style.css"> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 



<script> 
$(document).ready(function(){ 
$("#ajax-contact-form").submit(function(){ 
var str = $(this).serialize(); 
$.ajax(
{ 
type: "POST", 
url:"contact.php", 
data: str, 
success:function(result) 
{ 
$("#div1").html(result); 
} 
}); 
}); 
}); 
</script> 


</head> 
<body> 

<div id="contact_form"> 
<form id="ajax-contact-form" name="contact" action=""> 
<fieldset> 
<label for="name" id="name_label">Name</label> 
<input type="text" name="name" id="name" size="30" value="" class="text-input" /> 
<label class="error" for="name" id="name_error">This field is required.</label> 

<INPUT class="button" type="submit" name="submit" value="Send Message"> 
</fieldset> 
</form> 
</div> 


</body> 
</html> 

и contact.php файл

<?php 
echo "Hello"; 
?> 

ответ

0

Simple. Поскольку вы отправляете свою форму через ajax, вы должны запретить отправку формы по умолчанию, возвращая ложь внутри метода отправки. Ниже правильная версия:

<script> 
$(document).ready(function(){ 
    $("#ajax-contact-form").submit(function(){ 
    var str = $(this).serialize(); 
    $.ajax({ 
    type: "POST", 
    url:"contact.php", 
    data: str, 
    success:function(result) { 
     $("#div1").html(result); 
    } 
    }); 
    return false; 
}); 
}); 
</script> 
3

Вы должны return false; предотвратить форму от представления и обновления страницы, и если проверить ваш $("#div1") отсутствует.

$(document).ready(function(){ 
    $("#ajax-contact-form").submit(function(){ 
     var str = $(this).serialize(); 
     $.ajax(
     { 
      type: "POST", 
      url:"contact.php", 
      data: str, 
      success:function(result) 
      { 
        $("#div1").html(result); 
      } 
      }); 
     return false; 
    }); 
}); 
+0

Пожалуйста, укажите отсутствие 'div1' –

+0

@legendinmaking: я думаю, что div должен быть где-то еще, что OP не показывает в его коде. Во всяком случае, обновил код, чтобы напомнить ему, если он забудет. Благодарю. –

+0

спасибо мат. это отлично работает – user2267055

0

Убедитесь, что вы упускаете Div1

используйте

<div id="div1"><div> 
+1

Извините, вы используете ajax submit ** $ ("# ajax-contact-form"). Submit (function() {** вы не можете показать результат. Вам нужно использовать ** return false; ** – Developer

0

Вы можете использовать более простую форму запроса пост следующим образом:

$.post("url",{var1: value1, var2: value2},function(data,status){ 
if(status=='success') 
    alert(data); 
}); 

второй аргумент можно передать как многие, используя этот запрос пост. Первый аргумент url, если, конечно, relative to the document in which this js is loaded или вы можете указать точный URL-адрес на сервере.

Согласно вашему php-файлу данные == 'Hello'.

Также подходит для любого запроса GET.

Смежные вопросы