我想使用PHP从HTML表单中将数据插入MYSQL。当我在表单中输入有效字符串并按照代码将其重定向到 main.php 顺便说一下,输入的字符串未插入进入MYSQL表。
以下是我的代码
HTML
<form class="form" action="" method="post" >
<input type="text" placeholder="User Id" id="userid" name="userid" title="Enter your Roll number">
<button onclick="validate()" type="submit" id="login-button" name="formSubmit" value="submit">Login</button>
</form>
这是表单验证。
JS
function validate()
{
var id=document.getElementById('userid').value;
if(id=="")
{
document.getElementById('msg').innerHTML = "Please enter User Id";
setTimeout(function(){
window.location.replace('index.php');
}, 2000);
}
else
{
if(id.length=="10")
{
document.getElementById('msg').innerHTML = "Login Success";
setTimeout(function(){
window.location.replace('main.php');
}, 2000);
}
else
{
document.getElementById('msg').innerHTML = "Please enter valid User Id";
setTimeout(function(){
window.location.replace('index.php');
}, 2000);
}
}
}
PHP
mysql_connect("localhost", "root", "password") or die(mysql_error());
mysql_select_db("gcet_elib") or die(mysql_error());
if(isset($_POST['formSubmit']))
{
$userid = $_POST['userid'];
$query = "INSERT INTO users ( uid ) VALUES ('$userid')";
$result = mysql_query($query);
if($result){
//$msg = "User Created Successfully.";
echo '<script language="javascript">';
echo 'alert("Login Successfull")';
echo '</script>';
}
else
{
echo '<script language="javascript">';
echo 'alert("Cant submit this form")';
echo '</script>';
}
}
所以请帮我找出代码中的错误。
答案 0 :(得分:0)
当我运行此代码时,它会像这样警告&#34;无法提交此表单&#34;
可能是因为您的表单要求未得到满足,而这要求在validate()函数中定义。检查你的javascript validate()函数。这可能是错的。因此将其作为编辑发布,或者您可能没有将所需信息传递给validate()为true所需的输入字段。
mysql或php现在不是问题,因为您的表单甚至没有提交。
你的脚本可能是错的 检查一下,看看我提出的评论并提出一个想法。
function validate()
{
var id=document.getElementById('userid').value;
//if id is null this will rise
if(id=="")
{
document.getElementById('msg').innerHTML = "Please enter User Id";
setTimeout(function(){
window.location.replace('index.php');
}, 2000);
}
//if the id is not null this means a string is passed
else
{
//if the id is exactly 10 characters long
if(id.length=="10")
{
document.getElementById('msg').innerHTML = "Login Success";
setTimeout(function(){
window.location.replace('main.php');
}, 2000);
}
//if the id is not null and character length is not equal to 10
else
{
document.getElementById('msg').innerHTML = "Please enter valid User Id";
setTimeout(function(){
window.location.replace('index.php');
}, 2000);
}
}
}
在这种情况下,如果id不为null或null,它会将window.location.replace('index.php');
重定向到index.php,这是btw的意思,即使字符串被传递给它,它也会刷新。因此,请更正这些条件语句,以使其正常工作
答案 1 :(得分:0)
如果您在加载时看到错误,那么它是正常的,因为您没有设置
$_POST['formSubmit']
if
,else
循环将重定向到isset($_POST['formSubmit'])
,并显示错误。
在加载页面上,你没有设置post变量,但是php部分会执行,它会找到false
作为else
,它将会IFacebookService
声明。
进行以下更改。
答案 2 :(得分:0)
将html替换为以下内容:
<form class="form" action="main.php" method="post">
<input type="text" placeholder="User Id" id="userid" name="userid" title="Enter your Roll number">
<button onclick="return validate()" type="submit" id="login-button" name="formSubmit" value="submit">Login</button>
</form>
将javascript替换为以下内容:
function validate() {
var id = document.getElementById('userid').value;
if (id == "") {
document.getElementById('msg').innerHTML = "Please enter User Id";
return false;
} else {
if (id.length == "10") {
document.getElementById('msg').innerHTML = "Login Success";
return true;
} else {
document.getElementById('msg').innerHTML = "Please enter valid User Id";
return false;
}
}
}
答案 3 :(得分:0)
更改您的PHP代码,如下所示:
mysql_connect("localhost", "root", "root") or die(mysql_error());
mysql_select_db("stackov") or die(mysql_error());
if(isset($_POST['formSubmit']))
{
$userid = $_POST['userid'];
$query = "INSERT INTO users ( id ) VALUES ('$userid')";
$result = mysql_query($query);
if($result){
//$msg = "User Created Successfully.";
echo '<script language="javascript">';
echo 'alert("Login Successfull")';
echo '</script>';
}
else{
echo '<script language="javascript">';
echo 'alert("Cant submit this form")';
echo '</script>';
}
}
我刚刚更改了else块的位置,因此不会弹出不能提交表单的消息。
答案 4 :(得分:0)
如果您在页面加载时不需要错误,请将PHP文件更改为:
<?php
mysql_connect("localhost", "root", "root") or die(mysql_error());
mysql_select_db("stackov") or die(mysql_error());
if(isset($_POST['formSubmit']))
{
$userid = $_POST['userid'];
$query = "INSERT INTO users ( uid ) VALUES ('$userid')";
$result = mysql_query($query);
if($result){
//$msg = "User Created Successfully.";
echo '<script language="javascript">';
echo 'alert("Login Successfull")';
echo '</script>';
}
else{
echo '<script language="javascript">';
echo 'alert("Cant submit this form")';
echo '</script>';
}
}
?>
在check isset($ _ POST)上移动else语句
答案 5 :(得分:0)
您只是重定向和更改窗口位置。你需要提交表格。您需要提供action="main.php"
的操作,并且如果您的字段不为空或根据您的验证正确,则需要使用此$( "#formid" ).submit();
jquery函数。您将提交表单并且您将能够访问在main.php中发布值