Странности обработки формы в шаблоне.

Есть шаблон для страницы. В шаблоне есть форма. Количество полей переменное, и зависит от выбранного параметра у селекта. При изменении селекта на сервер отсылается запрос (ajax) и из базы получается количество полей, которые и добавляются в форму. Атрибут "action" у формы не указан, следовательно обработка должна происходить на этой же странице, собственно и функция обработки описана в этом шаблоне.
Проблема в том, что при добавлении полей обработка формы, судя по url, происходит на этой же странице, НО(!) шаблон для этой страницы подсовывается index.php, а там нет функции обработки отправленной формы.

Проблему смог локализовать до добавления полей через axaj. Поясню: если добавлять поля тупо с помощью javascript(jQuery), например, по нажатию куда-нибудь, то обработка формы происходит как положено на правильном шаблоне. Стоит только добавить поля в форму с использованием ajax – отправляет на index.php.

Пробовал явно задавать "action" у формы, пробовал выключать ЧПУ в настройках.
Версия wp 3.5.1.

$.post("/wp-content/themes/mythem/ajax_addwork.php",
    {nom_id:num_itm},
    function(data){
        var res = jQuery.parseJSON(data);

        // добавление полей
        if (res.count_video != 0){
            for (var i = 0; i < res.count_video; i++) {
                $('.b_video_files .file_main').append('<div class="addwork_file">
                               <p>выберите файл:</p><p class="addwork_file_name"></p>
                             <input class="only_video" type="file" name="file_video['+i+']" /></div>');
            };
            $('.b_video_files').fadeIn(300);
        };
     }
);

Как показало дальнейшее тестирование, проблема именно в использовании ajax на странице.
Даже при банальном изменении стилей у любого объекта, даже не лежащего внутри формы, wordpress отдает 404 ошибку.
Глубже изучать проблему не стал. Поскольку форма все данные отправляет корректно, свою задачу решил вынесением обработчика формы в отдельный файл.
Думаю, что можно было с таким же успехом отправку формы ajax’ом обработать, но я пока не понимаю как загружать файлы через ajax.

Anonymous
Отправить
Ответ на: