Использование jQuery для вставки данных в таблицу MySQL

0

Я пытаюсь заставить это работать, но у меня проблемы. Что мне здесь не хватает?

Я пытаюсь вставить некоторые данные через jQuery в локальную таблицу MySQL. Если я запустил save.php самостоятельно, он вставляет пустую строку в БД, так что это работает. Любые идеи?

**index.php**

<html>
    <head>
        <link rel="stylesheet" type="text/css" href="css/style.css" />

        <script src="jquery.js" type="text/javascript"></script>

        <script type="text/javascript">
            $(document).ready(function() {
                $('form#submit').submit(function () {
                    var nume = $('#nume').val();
                    $.ajax({
                        type: "POST",
                        url: "save.php",
                        data: "nume="+ nume,
                        success: function() {
                            $('#nume').val('');
                        }
                    });
                return false;
                });
            });
        </script>
    </head>

    <body>

        <form id="submit" method="post">
            <p>Nume: <input id="nume" name="nume"  type="text"></p>
            <p><input id="submitButton" type="button" value="Submit"></p>
        </form>

    </body>
</html>


**save.php**

<?php
    mysql_connect('localhost', 'root', 'root') or die(mysql_error());
    mysql_select_db("test") or die(mysql_error());

    $nume = htmlspecialchars(trim($_POST['nume']));

    $add = "INSERT INTO ajax_test (nume) VALUES ('$nume')";
    mysql_query($add) or die(mysql_error());
?>
  • 0
    Я бы порекомендовал изменить настройки вашего редактора, чтобы использовать отступ в 4 пробела.
  • 0
    Я знаю, что это всего лишь тестовый код, но убедитесь, что в вашем готовом коде вы используете $nume mysql_real_escape_string() с помощью mysql_real_escape_string() иначе у вас будет уязвимость SQL-инъекции.
Теги:

3 ответа

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

Вы уверены, что форма отправляется? Ваша кнопка не является input type="submit" - это просто кнопка. Он не представит форму самостоятельно.

  • 0
    Я изменил его обратно на type = "submit", и теперь страница перезагружается, но это не должно.
  • 1
    Попробуйте добавить пробел в $ ('form #submit')
Показать ещё 2 комментария
1

несколько вещей, которые вы могли бы сделать, чтобы помочь устранить неполадки.

Вставьте оповещение alert("submit"); после $('form#submit').submit(function () { , чтобы увидеть, отправляется ли форма. Также придерживайтесь одного в успехе alert("success");, чтобы узнать, получаете ли вы обратный вызов. Это покажет вам, на каком этапе он терпит неудачу, и поможет вам найти ваш поиск.

Вы также можете использовать плагин firebug для firefox, чтобы узнать, что отправляется через ajax, если он работает, чтобы увидеть, есть ли у вас какие-то значения. Подумайте, вам нужно отметить "Показать XMLHttpRequests в консоли"

1

Если решение Скотта Сондерса не работает, попробуйте следующее:

вместо

url: "save.php",

попробовать:

url: "save.php?nume=testvalue",

Если это также не работает, проверьте, читает ли ваш PHP скрипт входное значение из $_GET['nume'] или $_POST  вместо $_REQUEST['nume']

  • 0
    Опробовал каждое решение, похоже, оно не работает.
  • 0
    Измените $ _POST ['Number'] в вашем save.php на $ _REQUEST ['Number'] и вызовите save.php? Number = testvalue в вашем браузере, затем проверьте, появляется ли это значение в БД.
Показать ещё 1 комментарий

Ещё вопросы

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