отправить форму с помощью ajax и event.preventDefault () - PullRequest
0 голосов
/ 13 сентября 2011

У меня есть форма jquery / ajax, которая имеет event.preventDefault(). Проблема в том, что мое поле ввода не становится пустым, когда я нажимаю клавишу ввода. Обычно, когда вы нажимаете ввод в поле ввода, он выполняет «действие» в форме, и поле ввода очищается. Но теперь, когда я что-то печатаю, моя форма не сбрасывается в пустую, когда я нажимаю ввод. Я знаю, что event.preventDefault () не выполняет обычное «действие» в форме, но я пытаюсь не обновлять мою страницу и просто использовать ajax, чтобы он загружался без обновления страницы.

-------------------- jquery -------------------- (ниже)

$('[placeholder]').parents('form').submit(function(event) {
  $(this).find('[placeholder]').each(function() {
    var input = $(this);
    if (input.val() == input.attr('placeholder')) {
      input.val('');
    }

  });
  var input = $('input.sel').val();
  dataList = 'list=' + input;
    $.ajax({
        type: "POST",
        url: "ajax_table_edit.php",
        data: dataList,
        cache: false,
        success: function(html)
            {
                $('.selector').html(data);
            }
    });
    event.preventDefault();

});

--------------- ajax_table_edit.php ----------- (ниже)

if(isset($_POST['list'])){
$list = $_POST['list'];
$id = $_POST['id'];
$id = ereg_replace("[^0-9]", "", $id);

$sql = mysql_query("INSERT INTO table (column) VALUES ('".$list."')");

echo "success";

}

В то же время. Я пытаюсь повторить успех, но это тоже не работает. Может ли кто-нибудь помочь мне найти решение этой проблемы?

Спасибо за ваше время!

1 Ответ

2 голосов
/ 13 сентября 2011

Вам придется самостоятельно очистить поля с помощью jQuery: $("#field").val='';

И это не выводит ваше сообщение, потому что вы не получаете правильную переменную при успехе ... вы определяете его как html, который может бытьзарезервировано в любом случае ... попробуйте вместо этого назвать его данными, потому что это то, что вы используете внутри функции в любом случае.

...
success: function(data)
           {
               $('.selector').html(data);
           }
...

Кроме того, почему у вас даже есть этот код $id на стороне php?Похоже, он даже не привык.И только потому, что его ajax не означает, что вы защищены от внедрения SQL-кода, вам нужно очистить эту переменную $_POST['list'].

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