2015-03-01 5 views
0

Моя цель - когда я нажимаю кнопку на этой веб-странице, в базу данных MySQL будут введены данные.Используйте AJAX/PHP для вставки данных в HTML-базу данных в базу данных MySQL

На .html странице:

<html> 
 
<body> 
 
<p id="output">Output here</p> 
 
    <!-- Primary Page Layout 
 
    –––––––––––––––––––––––––––––––––––––––––––––––––– --> 
 
    <div class="container" style="background-image: url(images/background.png); width: 640px; height: 1400px; "> 
 
    <div class="row"> 
 
     <div class="one-half column" style="margin-top: 25%"> 
 
      <button onclick="submitFunction()" style="width: 150px; height: 100px; position: absolute; left: 70px; top: 880px;">test</button> 
 
     </div> 
 
    </div> 
 
    </div> 
 

 
<!-- Scripts--> 
 
<script> 
 
function submitFunction() { 
 
    $.ajax({ 
 
     url: 'sendcheck.php', 
 
     type: 'post', 
 
     data: {'Test1': 'data1', 'Test2': 'data2', 'Test3': 'data3', 'Test4': 'data4', 'Test5': 'data5'}, 
 
     success: function(data, status) { 
 
      if(data == "ok") { 
 
      document.getElementById("output").innerHTML = "Data sent"; 
 
      } 
 
     }, 
 
     error: function(xhr, desc, err) { 
 
      console.log(xhr); 
 
      console.log("Details: " + desc + "\nError:" + err); 
 
     } 
 
     }); // end ajax call 
 
} 
 
</script> 
 

 
<!-- End Document 
 
    –––––––––––––––––––––––––––––––––––––––––––––––––– --> 
 
</body> 
 
</html>

"sendcheck.php" страница здесь:

<?php 
 

 

 
$db = "testBase"; 
 
$dbu = "root"; 
 
$dbp = "test_test"; 
 
$host = "localhost"; 
 

 
$dblink = mysql_connect($host,$dbu,$dbp); 
 
$seldb = mysql_select_db($db); 
 

 
if(isset($_GET['Test1']) && isset($_GET['Test2']) && isset($_GET['Test3']) && isset($_GET['Test4']) && isset($_GET['Test5'])){ 
 

 
    $Test1 = strip_tags(mysql_real_escape_string($_GET['Test1'])); 
 
    $Test2 = strip_tags(mysql_real_escape_string($_GET['Test2'])); 
 
    $Test3 = strip_tags(mysql_real_escape_string($_GET['Test3'])); 
 
    $Test4 = strip_tags(mysql_real_escape_string($_GET['Test4'])); 
 
    $Test5 = strip_tags(mysql_real_escape_string($_GET['Test5'])); 
 
    $sql = mysql_query("INSERT INTO `$db`.`tester_table` (`ID,`Test1`,`Test2`,`Test3`,`Test4`,`Test5`) VALUES ('','$Test1','$Test2','$Test3','$Test4','$Test5');"); 
 
     
 
    if($sql){ 
 
     
 
      echo 'Your data was submitted'; 
 
      
 
    }else{ 
 
     
 
      echo 'There was a problem. Please try again later.'; 
 
      
 
    } 
 
     
 
}else{ 
 
    echo 'Your test wasnt passed in the request. Make sure you add ?Test1=data1_HERE&Test2=data2_here&Test3=data3_here&Test4=data4_here&Test5=data5_here to the tags.'; 
 
} 
 

 
mysql_close($dblink);//Close off the MySQL connection to save resources. 
 
?>

Я озадачен на Тхи s на пару дней. Когда я нажимаю кнопку, ничего не происходит. Я даже на правильном пути? Или, возможно, есть более простой способ сделать то, что я пытаюсь выполнить.

+0

Были ли данные успешно вставлены в вашу базу данных или у вас возникли проблемы с попыткой изменить 'innerHTML'' # output'? – kidA

+0

Данные не будут вставляться в базу данных, то есть проблема. – tyler5819

ответ

1

Вы делаете сообщение с Ajax, а в php вы используете $ _GET для чтения переменных. Вы должны использовать $ _POST вместо $ _GET.

+0

Я изменил $ _GET в PHP-код на $ _POST и, похоже, не исправил его, код по-прежнему не будет отправлять какие-либо данные в базу данных. – tyler5819

+0

Я также вижу, что в запросе отсутствует идентификатор после ID, вы пытались выполнить этот запрос непосредственно на Mysql, чтобы проверить, правильно ли синтаксис SQL? PHP и Ajax, похоже, сейчас в порядке. –

+0

Хорошо, но я исправил ', но при непосредственном запуске этого запроса:« INSERT INTO '$ db'.'tester_table' (' ID', 'Test1',' Test2', 'Test3',' Test4', 'Test5') VALUES ('', '$ Test1', '$ Test2', '$ Test3', '$ Test4', '$ test5');» Он выводит: # 1062 - Дублирует запись '0' для ключа 'PRIMARY' – tyler5819

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