Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Редактируемая страница


Автор: s1lver 8.11.2013, 09:16
Доброго времени суток!

Помогите пожалуйста разобраться в ситуации. Имеется форма с некоторыми полями, которые можно редактировать кликнув по тексту.
С помощь jQuery пытаюсь передать данные из формы в php скрипт для обработки и занесения их в БД.
Код

$(function(){
    var status = $("#form_add_partners");
    $("span[contenteditable=true]").blur(function(){
        var field = $(this).attr("id");
        var value = $(this).text();
        $.post("/module/test.php",field + "=" + value,
        function(data){
            status.text(data);
        });
    });
});


В php скрипте пытаюсь получить эти данные обычным образом
Код

$map_name = $_POST['name'];
$map_phone = $_POST['phone'];
$map_adress = $_POST['adress'];
$map_email = $_POST['email'];
$map_other = $_POST['other'];


Но, видимо что-то идет не так. Возможно нужно как-то установить обработчик события на кнопку(хотя это не желательно). Подскажите куда копать?  smile 

Автор: AVA12 8.11.2013, 14:12
Откуда в $_POST возьмутся поля, которые никто не отправляет? Ведь указанный обработчик отправляет только одно поле: id=содержимое_span. Если нужны еще и поля формы, добавь их в запрос, проще всего получить их с помощью jQuery(селектор_формы).serialize()

Автор: s1lver 8.11.2013, 14:34
Вот так выглядит форма, правда я сюда попытался добавить кнопку сохранить.
Код

var info_form_add = "<div class='form_add_partners'><ul id='form_add_partners'>"+
    "<li class='icon-briefcase'> Company:<span contenteditable='true' id='name'>Тест</span><br></li>"+
    "</ul>"+
    "<button id='save'>Сохранить</button>"+
    "</div>";


Т.е моя редактируемая область (поле формы) является тегом span, который и пытаюсь передать на обработку php скрипту.

Мне кажется, что тут ошибка в том что jQuery не работает  smile 
Для записи данных решил использовать не кнопку, а событие "потеря фокуса". Т.е пользователь при щелчке по тегу span начал редактировать запись(фокус на элементе), когда он закончил редактирование и щелкнул в другом месте, произошло событие "потеря фокуса". 

Простой код, для проверки потери фокуса элемента
Код

$('#name').focusout(function(){
    alert('Элемент name потерял фокус.');
});

так вот, alert не появляется при потери фокуса smile 

Автор: AVA12 8.11.2013, 20:17
Цитата
при щелчке по тегу span начал редактировать запись(фокус на элементе)

А был ли фокус? По стандарту HTML 4.01 события вроде onfocus определены только для элементов a, area, button, input, label, select и textarea.

Автор: s1lver 11.11.2013, 08:46
Пришел к мысли, что причиной не работоспособности кода является API google maps. Не хочет работать в сплывающем окне, либо надо как-то передавать внутрь функции  smile 

ps. проверил свое предположение размещением кнопки вместе точно не использующим API, обработка происходит. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)