Я пытаюсь отправить данные в базу данных, но получаю Undefined Index error.PHP Undefined Index при отправке значений ввода через Ajax
Я использовал isset
функцию, чтобы проверить, получаю ли я какую-либо ценность и использовал print_r
, но я не могу получить никакой ценности.
Хотя ajax отправляет запрос успешно, по-прежнему php $_POST
не может получить никакого значения. Пусто.
Вот ошибка
Notice: Undefined index: email in C:\xampp\htdocs\msaccess\tst.php on line 5
Notice: Undefined index: username in C:\xampp\htdocs\msaccess\tst.php on line 6
Notice: Undefined index: fullname in C:\xampp\htdocs\msaccess\tst.php on line 7
Notice: Undefined index: password in C:\xampp\htdocs\msaccess\tst.php on line 8
Notice: Undefined index: repass in C:\xampp\htdocs\msaccess\tst.php on line 9
INSERT INTO submitform(fullname,email,username,userpassword,datesubmit) VALUES ('','','','','02/07/2014 02:45:53')
Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC Microsoft Access Driver] Field 'submitform.username' cannot be a zero-length string., SQL state S1000 in SQLExecDirect in C:\xampp\htdocs\msaccess\tst.php on line 13
success
Это мой HTML
<div class="form">
<div class="form-header">
Create Your Account
</div>
<div class="form-body">
<div class="row line">
<div class="callit">Full Name: </div>
<div class="inputbox"><input class="fullname" type="text" id="fullname" placeholder="Full Name" /></div>
</div>
<div class="row line">
<div class="callit">Email: </div>
<div class="inputbox"><input class="email" type="email" id="email" placeholder="Email Address" /></div>
</div>
<div class="row line">
<div class="callit">Username: </div>
<div class="inputbox"><input class="username" type="text" id="username" placeholder="Username" /></div>
</div>
<div class="row line">
<div class="callit">Password: </div>
<div class="inputbox"><input class="password" type="password" id="password" placeholder="Password" /></div>
</div>
<div class="row line">
<div class="callit">Retype Password: </div>
<div class="inputbox"><input class="repass" type="password" id="repass" placeholder="Retype Password" /></div>
</div>
</div>
<div class="footer">
<button type="button" onclick="vals();">Create Account</button>
<div><span id="status"></span></div>
</div>
</div>
Это мой Javascript/Ajax вызовов
<script type="text/javascript">
function vals(){
var e = document.getElementById('email').value;
var fn = document.getElementById('fullname').value;
var u = document.getElementById('username').value;
var ps = document.getElementById('password').value;
var rep = document.getElementById('repass').value;
document.getElementById('status').innerHTML = e+' '+fn+' '+u+' '+ps+' '+rep+' ';
var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}
else{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState==4 && xmlhttp.status == 200){
document.getElementById('status').innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("POST", "tst.php", true);
xmlhttp.send("email="+e+"&fullname="+fn+"&username="+u+"&password="+ps+"&repass="+rep);
}
</script>
Вот tst.php
файл кода
<?php
include_once('includes/db.php');
$email = $_POST['email'];
$username = $_POST['username'];
$fullname = $_POST['fullname'];
$password = $_POST['password'];
$repass = $_POST['repass'];
$date = date('m/d/Y H:i:s');
$sql = "INSERT INTO submitform(fullname,email,username,userpassword,datesubmit) VALUES ('$fullname','$email','$username','$password','$date')";
echo $sql;
$rs = odbc_exec($conn, $sql);
echo 'success';
?>
сделать 'var_dump/print_r' на '$ _POST' - что он показывает – helion3
Пустой. Array() – Sam
Проверьте вкладку «Сеть» инструментов разработчика, чтобы узнать, какие параметры вы отправляете. – Barmar