2014-12-06 7 views
0

У меня есть веб-форма здесь, которая передает данные в переменные через javascript и php в массив post и должна передавать его в мою базу данных mysql. Это не делает, однако, кнопка бросает ошибку.Почему моя кнопка не отправляет данные в мою базу данных mysql?

HTML

<link rel='stylesheet' type='text/css' href='test.css'/> 
    <script type='text/javascript' src='jquery.js'></script> 
    <script type='text/javascript' src='script.js'></script> 



</head> 

     <body><form> 
    Strain name:<input type="text" id="strainName" /> 
    <br /> 
    Plant Generation:<input type="text" id="generation" /> 
    <br /> 
    Vegetation Date:<input type="date" id="vegDate" /> 
    <br /> 
    Flower Date:<input type="date" id="flowerDate" /> 
    <br /> 

    <input type="button" id="submit" value="Submit" onclick='submit()' /> 
    </form> 
    <div id="sampleOutput"></div> 


     <table border="1" style="background-color:#66CC33;border-collapse:collapse;border:1px solid #000000;color:#000000;width:25%" cellpadding="3" cellspacing="3"> 
<tr> 
    <td>Plant A1</td> 
    <td>Plant A2</td> 
</tr> 
<tr> 
    <td>Plant B1</td> 
    <td>Plant B2</td> 
</tr> 
</table> 
</body> 
</html> 

JS

function submit() { 

var strainName = $('#strainName').val(); 
var generation = $('#generation').val(); 
var vegDate = $('#vegDate').val(); 
var flowerDate = $("#flowerDate").val(); 

$.post('postdata.php',{SN:strainName, GEN:generation, VD:vegDate, FD:flowerDate}, function(data) { 



}); 

PHP

<?php 

$STRAINNAME = $_POST['SN']; 
$GENERATION = $_POST['GEN']; 
$VEGDATE = $_POST['VG']; 
$FLOWERDATE = $_POST['FD']; 
$GENERATION= (int)$GENERATION; 

$databaseConnVar = mysqli_connect('localhost', 
           'jackigsd_jack', 
           'Asdfgh13', 
           'jackigsd_flowerRoom') 
           or die('Error Connecting to Mysql Database server'); 

$query = "INSERT INTO flowerRoom (Strain Name, Generation, VegDate, FlowerDate)"."VALUES ('$STRAINNAME', '$GENERATION', '$VEGDATE', '$FLOWERDATE')";         

$result = mysqli_query($databaseConnVar, $query) 
or die('Error Connecting to Mysql Database server');     

    mysqli_close($databaseConnVar); 

      print_r("Is this thing on?");     

// if ($GENERATION < 16){echo $STRAINNAME . " is not old enough to drive"; 
// }else {echo $STRAINNAME . " is old enough to Rock";} 

?> 
+0

Опубликуйте ошибку пожалуйста – vladkras

+3

Вы не предотвратили форму по умолчанию действия на, который должен опубликовать форму/перезагрузки страница. Попробуйте изменить 'onclick = 'submit()'' на 'onclick = 'submit(); return false;' – Sean

+1

также имена столбцов с пробелами должны быть заключены с обратными тиками ->' "INSERT INTO flowerRoom (Strain Name 'необходимо' 'INSERT INTO flowerRoom (\' Strain Name \ '' – Sean

ответ

0

U может использовать ajax, сериализовать и распечатать ошибку.

$.ajax({ 
    type: "POST", 
    url: "postdata.php", 
    data: $("form").serialize(), 
    success: function(msg){ 
     console.log("Data Saved: " + msg); 
    }, 
    error: function(XMLHttpRequest, textStatus, errorThrown) { 
    console.log(textStatus); 
    } 
}); 

Устранить все ключи экранных для данных $ _POST из PHP (пример):

$STRAINNAME = $_POST['strainName']; 
+1

Возможно, избегайте использования сокращений, таких как «U». Это не текстовое сообщение. Метод $ .post' также является ajax-запросом. Это ничего не меняет с кода OP. –

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