Отправка HTML-формы с помощью AJAX - PullRequest
0 голосов
/ 30 сентября 2011

У меня есть форма:

<form action="#" method="post" id="hubForm">
    <label class="labelText">Expiration Date:</label>
    <input class="datBox" type="text" id="cal" name="date">
    <div class="clr"></div>
    <div class="clr"></div>
    <label class="labelText">Hub Name</label>
    <input class="inputTxt" type="text" value="" name="name" />
    <div class="clr"></div>
    <label class="labelText">Description</label>
    <textarea class="textArea" name="desc"></textarea>
    <div class="clr"></div>
    <input class="submitButt" type="submit" value="" />
    <div class="clr"></div>
</form>

И у меня есть этот JavaScript:

$('#hubForm').submit(function() {
    $.ajax({
        url: "hubControl.php",
        type: "post",
        data: $(this).serialize()
    });
});

И этот код PHP:

//Add the hub, task, or project to the database
mysql_query("INSERT INTO ".$type."s(".$IDvar.", name, description, users, expDate)
VALUES(".$ID.", \"".$_POST['title']."\", \"".$_POST['desc']."\", ".$ID.", ".$_POST['date'].")");

Но он отказывается добавлять что-либо в базу данных.Я переписал код для использования $ _GET и протестировал PHP, и я убедился, что он работает.

Что касается JavaScript, я также пробовал такие вещи, как

$.post("hubControl.php", $('#hubForm').serialize());

но ничего не работает.Есть идеи?

РЕДАКТИРОВАТЬ: Форма HTML была предоставлена ​​мне кем-то другим, поэтому я не знаю, совместима ли она на 100% с AJAX / JavaScript с такими вещами, как method ="сообщение".У всех вас будет лучшая идея, чем у меня.

Ответы [ 3 ]

0 голосов
/ 30 сентября 2011

Если он работает с $ _GET, а не с $ _POST, похоже, что массив $ _POST не заполняется правильно.

Я бы порекомендовал вам начать работать с этим, просмотрев массив $ _REQUEST или $ _POSTкогда страница загружена.print_r ($ _ POST) в некоторых тегах HTML pre может быть очень полезным.

Если вы знаете, что PHP даже не получает правильные данные, вы можете сосредоточиться на исправлении Ajax / jQuery.

0 голосов
/ 30 января 2013

Попробуйте использовать прописные буквы:

$.ajax({
    url: "hubControl.php",
    type: "POST",
    data: $(this).serialize()
});
0 голосов
/ 30 сентября 2011

Поскольку вы используете jQuery, вам следует рассмотреть возможность использования плагина ajaxForm .Он очень прост в использовании, вы можете просто вставить его в свой проект с минимальными настройками.

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