изменить прототип сценария на JQuery один - PullRequest
1 голос
/ 30 марта 2010

У меня есть эта форма отправить код:

Event.observe(window, 'load', init, false);
function init() {
  Event.observe('addressForm', 'submit', storeAddress);
}
function storeAddress(e) {
  $('response').innerHTML = 'Adding email address...';
  var pars = 'address=' + escape($F('address'));
  var myAjax = new Ajax.Updater('response', 'ajaxServer.php', {method: 'get', parameters: pars});
  Event.stop(e);
}

Как я могу изменить его для работы с jQuery?

Вот HTML-форма:

<form id="addressForm" action="index.php" method="get">
  <b>Email:</b> <input type="text"  name="address" id="address" size="25"><br>
  <input name="Submit" value="Submit" type="submit" />
  <p id="response"><?php echo(storeAddress()); ?></p>
</form>

и это php код в начале документа:

<?php
require_once("inc/storeAddress.php");
?>

Ответы [ 3 ]

3 голосов
/ 30 марта 2010

Примерно так:

$(function() {
    $('#addressForm').submit(function() {
        $('#response')
            .html('Adding email address...')
            .load('ajaxServer.php', { address: $('#address').val() }, function() {
                $('#address').val('');
            });
        return false;
    });
});

Примечание: при использовании .load() метод POST используется, если данные предоставляются в виде объекта; в противном случае, GET предполагается. Итак, если вы хотите передать данные как GET, используйте:

.load('ajaxServer.php', 'address='+$('#address').val());

Или просто получите представленные данные от $_POST['address'], что, на мой взгляд, было бы мудрее и проще.

2 голосов
/ 30 марта 2010

Вы можете конвертировать скрипт так:

$(function() {
  $('#addressForm').submit(function(e) {
    $('#response').html('Adding email address...');
    $.ajax({
        url: 'ajaxServer.php',
        type: 'GET',
        data: {'address': $('#address').val() },
        success: function(response) {
          $('#response').html(response);
        }
    });
    e.preventDefault();
    return false;
  });​
});

Вот краткое изложение эквивалентов:

  • .html() для внутреннего вызова HTML
  • $('#id') селектор для поиска по идентификатору
  • $.ajax для вызова Ajax
    • data - переданные параметры, установить пару (адрес = ...)
    • success обратный вызов выполняется после завершения запроса
      • поместите ответ в id="response" div здесь
0 голосов
/ 30 марта 2010

Дай вихрь ..

function init()
{
    $('#addressForm').submit(storeAddress);
}

function storeAddress(e)
{
    $('#response').html('Adding address...');

    var params = 'address=' + $('#address').val();

    $('#response').load('ajaxServer.php', params);

    $.ajax({
        url : 'index.php',
        data : $('#addressForm').serialize(),
        success : function(data)
        {
            alert('yay, form data sent!');
        }
    });

    // Fix - stops page reload
    return false;
}

$(document).ready(init);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...