2013-09-26 5 views
1

Я пытаюсь отправить данные формы, используя сериализацию, на другую страницу, которая использует эти данные для отправки электронной почты. Вместо того, чтобы отправлять данные на страницу процесса, она добавляет данные в строку запроса на странице формы. Я включил правильный URL-адрес в запрос ajax, поэтому я не уверен, почему это происходит?Сообщение AJAX для отправки электронной почты - webmatrix

Вот мой код:

<form id="idForm"> 
<div> 
    <label>Your name:</label> 
    <input type="text" name="customerName" /> 
</div> 

<div> 
    <label>Your email address:</label> 
    <input type="text" name="customerEmail" /> 
</div> 

<div> 
    <label>Details about your enquiry:</label> 
    <textarea name="customerRequest" cols="45" rows="4"></textarea> 
</div> 
<input type="hidden" name="propertyid" value="@rPropertyId"> 
<button id="submitButtonId" type="submit" class="btn btn-default" value="Submit">Submit</button> 

</form> 

<script> 
$(document).ready(function() { 
    $("#submitButtonId").click(function() { 
    var url = "~Email/BookingEnquiry"; 
     $.ajax({ 
      url: url, 
      data: $("#idForm").serialize(), // serializes the form's elements. 
     success: function(data) 
     { 
      alert(data); 
     } 
    }); 

return false; 
    }); 
}:; 

</script> 

мне посоветовали многочисленные интернет-форумах, что я должен включать в себя «возвращение flase» элемент тоже может это быть проблема?

+0

Кроме того, я не добавил метод и действие в моей форме, но я не должен права, код Ajax должен обрабатывать все это? – Gavin5511

ответ

0

Как это один

$("#submitButtonId").click(function() { 
    var getdata = $('#idForm').serialize(); 
    $.post('~Email/BookingEnquiry', {setdata:getdata}, function (data) { 
     $('#mydata').html(data); 
    }); 
}); 
+0

Я не уверен, что понимаю, как он узнает, какой URL-адрес отправить эти данные? – Gavin5511

+0

теперь вы можете отправить данные на этот файл, и данные вернутся на #mydata div через html – jswolf

0

К сожалению, я удалил мой старый ответ, похоже, у вас есть ошибка синтаксиса где-то (я не могу найти)

Это, как я сделал бы это , Я не запрограммировал много, но я думаю, что это нормально. Пожалуйста, спросить, есть ли что-нибудь, я могу помочь с

<form id="idForm"> 
<div> 
    <label>Your name:</label> 
    <input type="text" id="customerName" /> 
</div> 

<div> 
    <label>Your email address:</label> 
    <input type="text" id="customerEmail" /> 
</div> 

<div> 
    <label>Details about your enquiry:</label> 
    <textarea id="customerRequest" cols="45" rows="4"></textarea> 
</div> 
<input type="hidden" id="propertyid" value="@rPropertyId"> 
<button id="submitButtonId" type="submit" class="btn btn-default" value="Submit">Submit</button> 

</form> 

<script> 
$(document).ready(function() { 
    $('#idForm').submit(function(){ // If the form was submitted 
     var customerName = $('#customerName').val(), // All the values from the fields... 
      customerEmail = $('#customerEmail').val(), // 
      customerRequest = $('#customerRequest').val(), // 
      propertyid = $('#propertyid').val(); // 
     $.post("PATH/FILENAME.php", // The php-file to process the data 
      { 
      // In the php-file, use $_POST['customerName']; --> etc 
      customerName : customerName, // all the values + their names 
      customerEmail : customerEmail, 
      customerRequest : customerRequest, 
      propertyid : propertyid 
      }, 
      function(data){ // What to do with the data when finished. 
      alert(data); // Data is the same as whats beeing echo'ed in the php-script 
     }); 
    }); 
}); 
</script> 
Смежные вопросы