В настоящее время мой AJAX работает следующим образом:
index.php
<a href='one.php' class='ajax'>One</a> <div id="workspace">workspace</div>
one.php
$arr = array ( "workspace" => "One" ); echo json_encode( $arr );
ajax.js
jQuery(document).ready(function(){ jQuery('.ajax').live('click', function(event) { event.preventDefault(); jQuery.getJSON(this.href, function(snippets) { for(var id in snippets) { jQuery('#' + id).html(snippets[id]); } }); }); });
Над кодом работает отлично. Когда я нажимаю ссылку «Один», тогда выполняется one.php, а строка «Один» загружается в рабочее пространство DIV .
Теперь я хочу отправить форму с AJAX. Например, у меня есть форма в index.php, как это.
<form id='myForm' action='one.php' method='post'> <input type='text' name='myText'> <input type='submit' name='myButton' value='Submit'> </form>
Когда я отправляю форму, тогда one.php должен печатать значение текстового поля в рабочей области DIV.
$arr = array ( "workspace" => $_POST['myText'] ); echo json_encode( $arr );
Как закодировать js для отправки формы с помощью AJAX / JSON.
благодаря
Отправка формы проста:
$j('#myForm').submit();
Однако это будет опубликовать всю страницу.
Сообщение через вызов Ajax также легко:
$j.ajax({ type: 'POST', url: 'one.php', data: { myText: $j('#myText').val(), myButton: $j('#myButton').val() }, success: function(response, textStatus, XMLHttpRequest) { $j('div.ajax').html(response); } });
Если вы хотите что-то сделать с результатом, у вас есть два варианта – вы можете либо явно установить функцию success
(что я сделал выше), либо вы можете использовать метод вспомогательной load
:
$j('div.ajax').load('one.php', data);
К сожалению, есть один беспорядочный бит, за которым вы застряли: заполнение этого объекта data
переменными формы для публикации.
Однако это должен быть довольно простой цикл.
Вот мое полное решение:
jQuery('#myForm').live('submit',function(event) { $.ajax({ url: 'one.php', type: 'POST', dataType: 'json', data: $('#myForm').serialize(), success: function( data ) { for(var id in data) { jQuery('#' + id).html(data[id]); } } }); return false; });
$.ajaxSubmit
функцию $.ajaxSubmit
в $.ajaxSubmit
формы jQuery . Должно быть так же просто, как
$('#myForm').ajaxSubmit();
Вы также можете привязываться к событию отправки формы, чтобы все материалы отправлялись через AJAX, как показывает пример на связанной странице.
Вы можете отправить форму с $.ajax
метода $.ajax
jQuery следующим образом:
$.ajax({ url: 'one.php', type: 'POST', data: $('#myForm').serialize(), success:function(data){ alert(data); } });