Синтаксическая ошибка JQuery при отправке

0

Я пытаюсь представить форму, в которой пользователи добавили поля через jquery, проблемы представляют собой обычный способ пропускать эти поля, определенные пользователем. Я использую функцию submit вместо jquery, но получаю ошибки. Я сделал что-то неправильно ниже?

$(document).ready(function () {
    $('#form').on('submit', function(e) {
        //prevent the default submithandling
        e.preventDefault();

        //alert(1);
        //send the data of \'this\' (the matched form) to yourURL
        $('processme.php', $(this).serialize()).submit;
    });
});

Я попробовал, чтобы он публиковал функцию раньше, но поскольку он фактически не переходит на страницу на столбе, это вызвало ошибку сервера 500, это сработало бы, но это обусловило синтаксическую ошибку для сериализованных данных в консоли firebug.

Спасибо за вашу помощь

РЕДАКТИРОВАТЬ:

Это точная ошибка "Ошибка: ошибка синтаксиса, нераспознанное выражение: details1 = & userval = 2/jquery-1.9.1.js Строка 4421 выдает новую ошибку (" Синтаксическая ошибка, нераспознанное выражение: "+ msg);

Вот код, используемый для добавления новых полей ввода:

function addRow(){
 $('#tbl1').find('tbody:last').after('<tr><td>User Defined</td><td><input name="userdef[]" value="" type="text"></td>/td></tr>');
}

PS Processme.php имеет встроенный форвардер, который зависит от ответа проверки. Поэтому сообщение должно быть отправлено в processme.php.

Код PHP:

 print_r($_POST);
 print_r($_POST("userdef")); echo "<br/>";
        foreach ($_POST("userdef") as $key=>$val) {
            echo $key." - ".$val.", ";
        }
        exit()

Вывод:

  Array ( [userdef] => Array ( [1] => 11111 ) [userval] => Array ( [0] => ) ) 
  • 0
    что должна делать эта линия? $(\'processme.php\', $(this).serialize()) . Также покажите код, который добавляет новые поля ввода ... у них всех есть name ? Нет name = Нет отправки
  • 0
    Почему у вас \ перед каждой цитатой?
Показать ещё 4 комментария

3 ответа

1
Лучший ответ

Я считаю, что лучший способ - использовать встроенную функцию отправки.

Я предполагаю, что поля либо не добавляются в форму должным образом, либо неправильно назначаются.

Если вы можете опубликовать код для этого раздела, мы сможем это сделать.

Попробуйте это и посмотрите, работает ли исходный материал отправки

var count = 0;
function addRow(){
    count++;
    $('#tbl1').find('tbody:last').after('<tr><td>User Defined</td><td><input         name="userdef['+count+']" value="" type="text"></td>/td></tr>');
}



foreach ( $_POST['userdef'] as $key => $val){
    echo $key . ' = ' . $val . '\n'; 
}
  • 0
    Итак, я сделал это. Я могу увидеть многомерный массив, когда я печатаю __POST ($ _ POST), но ничего не вижу, когда пытаюсь пройтись по $ _POST ['userdef'] ... какие-нибудь идеи?
  • 0
    Array ([userdef] => Array ([1] => 11111) [userval] => Array ([0] =>))
Показать ещё 6 комментариев
0

Я думаю, что $('processme.php', $(this).serialize()).submit. Вы хотите сделать $.get а .submit бесполезен.

$(document).ready(function () {
    $('#form').on('submit', function(e) {
        //prevent the default submithandling
        e.preventDefault();

        //alert(1);
        //send the data of \'this\' (the matched form) to yourURL
        $.get('processme.php', $(this).serialize());
    });
});
0

Попробуйте так:

$('#form').on('submit',function() {

    var url = "processme.php";

    $.ajax({
           type: "POST",
           url: url,
           data: $(this).serialize(), // serializes the form elements.
           success: function(data)
           {
               alert(data); // show response from the php script.
           }
         });

    return false; // avoid to execute the actual submit of the form.
});
  • 0
    Проблема в том, что processme.php имеет встроенный сервер пересылки, который зависит от ответа проверки. Таким образом, этот способ не будет работать.
  • 0
    Если вы также можете поделиться своим php-кодом, мы легко это выясним.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню