2015-04-29 3 views
0

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

clicktest.html

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 

    <script type="text/javascript"> 
     $(document).ready(function(){ 
      //alert("jquery working"); 
      $('#theform').on('submit', function(event){  
       event.preventDefault(); 
       alert("submit clicked"); 
       $('#data').text($('#theform').serialize()); 
       $.post('http://arielbalter.com/clicktest/clicktest.php', $('#theform').serialize()); 
      }); 
     }); 
    </script> 
</head> 

<body> 
    <p id="data">data</p> 
    <form id="theform" method="POST" action="http://arielbalter.com/clicktest/clicktest.php"> 
     <input type="text" id="text" name="text" value="Text"/> 
     <input type="submit" id="button" name="submit-button" value="Submit"/> 
    </form> 
</body> 
</html> 

clicktest.php

<?php 
    $text = $_POST['text']; 
    echo $text; 
?> 

http://jsfiddle.net/abalter/u7ayLf9h/

+0

И как вы знаете, вы не проверять возвращаемый результат от вызова ajax? – adeneo

+0

Я не уверен, что понимаю. Реальная цель - приложение ColdFusion, не использующее ajax. Итак, я буду обрабатывать данные формы не с PHP, и не ожидаю ничего взамен. Но принцип тот же. Почему PHP не получает почтовые данные через javascript? – abalter

ответ

0

Вам нужно добавить response так:

$.post('http://arielbalter.com/clicktest/clicktest.php',  
    $('#theform').serialize(), 
    function(response) { 
     alert(response) 
    } 
); 
+0

Это не сработало для меня. http://jsfiddle.net/abalter/u7ayLf9h/1/ – abalter

+0

@abalter Тест на 'localhost' jsfiddle отправить' Access-Control-Allow-Origin' ошибку на 'console' – ops

+0

Извините, но я не понимаю. Не могли бы вы это понять, возможно, в вашем ответе? – abalter

0

Я нашел решение. Вместо того, чтобы записывать событие .submit формы, я делаю кнопку регулярной кнопкой и обрабатываю событие .click.

Новый HTML является:

<p id="data">data</p> 
<form id="theform" method="POST" action="http://arielbalter.com/clicktest/clicktest.php"> 
    <input type="text" id="text" name="text" value="Text" /> 
    <input type="button" id="submit-button" name="submit-button" value="Submit" /> 
</form> 

Новый JQuery является:

$('#submit-button').on('click', function (event) { 
    event.preventDefault(); 
    //alert("submit clicked"); 
    $('#data').text($('#theform').serialize()); 
    $.post('http://arielbalter.com/clicktest/clicktest.php', $('#theform').serialize()); 
    $('#theform').submit(); 
}); 

скрипку является: http://jsfiddle.net/abalter/xuhn669p/6/

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