2015-01-22 2 views
0

Я пытаюсь вставить данные из формы в базу данных без обновления страницы, мои HTML страницы выглядит следующим образом:Вставки в базу данных MySQL с помощью AJAX + PHP

<html> 
    <head> 
     <script src="http://code.jquery.com/jquery-latest.js"></script> 
    </head> 

    <body> 
     <form name="form1" method="post" action="">Enter Name 
      <input type="text" name="t1" id="t1"> 
      </td> 
      <br>Enter City 
      <input type="text" name="t2" id="t2"> 
      </td> 
      <br> 
      <input type="button" name="button1" value="Insert to DB" onClick="aa()"> 
     </form> 
     <div id="d1"></div> 
     <script type="text/javascript"> 
      function aa() { 
       var xmlhttp = new XMLhttpRequest(); 
       xmlhttp.open("GET", "insert.php?name=" + document.getElementById("t1").value + "&city" + document.getElementById("t2").value, false); 
       xmlhttp.send(null); 

       document.getElementById("d1").innerHTML = xmlhttp.responseText;; 
      } 
     </script> 
    </body> 
</html> 

и мой insert.php выглядит следующим образом:

<?php 
    $name = $_GET["name"]; 
    $city = $_GET["city"]; 

    mysql_connect("localhost","root", ""); 
    mysql_select_db("dwh"); 
    mysql_query("insert into table1 values('$name','$city')"); 
    echo "Record inserted"; 
?> 

По-моему, это должно отправлять PHP все данные в «get», а php должен просто взять его и вставить. Как-то это не так. Может быть, я что-то пропустил, ты можешь помочь мне найти проблему?

браузер консоли сказать:

(index):16 Uncaught ReferenceError: XMLhttpRequest is not defined(index):16 aa(index):9 onclick 

Спасибо много.

p.s. Я понимаю, что мой MYSQL-соединение - это риск безопасности, это было создано, чтобы проверить, как заставить его работать.

+0

Включение jQuery здесь кажется спорным, поскольку вы его вообще не используете. –

+0

Попробуйте удалить 'method =" post "' –

+4

Пожалуйста, _please_, *** перестаньте использовать расширение 'mysql' ***, это *** depreacted *** и уже какое-то время. [*** Прочитайте красное предупреждение о человеке ***] (http://php.net/mysql_query) и нажмите ссылки. Научитесь использовать (и любить) 'PDO' и/или' mysqli' ('i' для _improved_). Это заменяющие расширения –

ответ

1

(index):16 Uncaught ReferenceError: XMLhttpRequest is not defined(index):16 aa(index):9 onclick

JavaScript чувствителен к регистру. Функция XMLHttpRequest (со столицей H).

+0

О, YEA !!! Это оно! Спасибо, товарищ, я скучаю по нему – Andurit

+0

Мне интересно, почему на самом деле они решили сделать его чувствительным к регистру lol, это глупо, если вы думаете об этом. Переменные я могу понять, но функции? –

0

Вы пропустили знак равенства после слова «город» в &city и требуется при создании строки запроса:

xmlhttp.open("GET", "insert.php?name=" + document.getElementById("t1").value + "&city" + document.getElementById("t2").value, false); 

должен быть

xmlhttp.open("GET", "insert.php?name=" + document.getElementById("t1").value + "&city=" + document.getElementById("t2").value, false); 
+0

Спасибо, Джеймс, это была правильная точка (я думаю, уже упоминал Фред), к сожалению, не исправить мою проблему – Andurit

0

Try включают имена столбцов из таблиц, например:

insert into table1 (column1, column2) values('$name','$city') 

Кроме того, используйте другую переменную, чтобы проверить, Ваш запрос успешно выполнить или нет:

$result = mysql_query("insert into table1 (column1, column2) values('$name','$city')"); 
if (!$result) { 
    die('Invalid query: ' . mysql_error()); 
} 
+1

столбцы не нужны Если вы сохраняете свой порядок в значениях –

+1

Это не имеет большого значения. Это хорошая практика, но данные должны автоматически заполняться. –

+0

oops, я не знал этого, спасибо, что указал: p –

0

Есть две вещи, которые нужно исправить:

  1. В строке var xmlhttp = new XMLhttpRequest(); она должна быть var xmlhttp = new XMLHttpRequest(); с капиталом H.

  2. Необходимо указать id: <input>, так как вы добавляете значение на getElementById(). В настоящее время нет элементов для id, которые вы прошли.

Смежные вопросы