Php 验证数据&;将数据插入mysql
我正在制作一个帮助台页面,在那里我有一个页面来提出问题。我有一张表格,我想在表格中填写问题类型和查询字段,必须填写扩展编号的数据,并验证数据。也就是说,它应该只填写编号。 我尝试过通过ajax和表单验证获取代码,但无法执行代码&值没有插入到mysql数据库中 请帮忙 Ticket.phpPhp 验证数据&;将数据插入mysql,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我正在制作一个帮助台页面,在那里我有一个页面来提出问题。我有一张表格,我想在表格中填写问题类型和查询字段,必须填写扩展编号的数据,并验证数据。也就是说,它应该只填写编号。 我尝试过通过ajax和表单验证获取代码,但无法执行代码&值没有插入到mysql数据库中 请帮忙 Ticket.php <?php session_start(); ?> <!DOCTYPE html> <html lang="en"> <head> <title
<?php session_start(); ?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Raise Ticket</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script>
$(document).ready(function() {
// Form validation.
if ($('.validate-issue').val() === '') { $('.issue-error').fadeIn(); }
if ($('.validate-query').val() === '') { $('.query-error').fadeIn(); }
// Grab form values
var formData = {
'ename' : $('input[name=ename]').val(),
'date' : $('input[name=date]').val(),
'ext' : $('input[name=ext]').val(),
'issue' : $('select[name=issue]').val(),
'query' : $('input[name=query]').val(),
'upload' : $('input[name=upload]').val()
};
if($('.validate-issue').val().trim()) &&($('.validate-query').val().trim()){
// Ajax form submit.
$.ajax({
type: "POST",
url: "insertticket.php",
data: formData,
success: function()
{
alert('Ticket has been raised');
}
});
} else { alert('Please enter the mandatory fields'); } });
});
</script>
</head>
<body>
<div class="container">
<div class="panel panel-default">
<div class="panel-heading"><h1 align="center">Helpdesk-Support</h1></div>
<hr>
<div class="panel-body" align="center">
<h2>Raise Ticket!</h2>
<form class="form-horizontal" role="form" enctype="multipart/form-data" method="post">
<div class="form-group">
<label class="control-label col-sm-2" for="text">Name:</label>
<div class="col-sm-10">
<input type="text" disabled class="form-control" id="text" name="ename" value="<?php echo ucwords($_SESSION['usr_name']); ?>">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="date">Date:</label>
<div class="col-sm-10">
<input type="text" class="form-control" disabled id="date" name="date" value="<?php date_default_timezone_set("Asia/Calcutta"); echo date('Y-m-d H:i:s')?>">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="ext">Extension No.:</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="ext" name="ext" placeholder="Enter Extension No.">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="issue">Issue Type:</label>
<div class="col-sm-10">
<select class="form-control" id="validate-issue" name="issue"><span class="issue-error">Enter Issue Type</span>
<option>Select an option</option>
<option>Hardware Issue</option>
<option>Network Issue</option>
<option>Software Issue</option>
<option>ERP</option>
<option>CRM</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="query">Query:</label>
<div class="col-sm-10">
<textarea rows="5" class="form-control" id="validate-query" name="query" placeholder=" Enter Query here"></textarea><span class="query-error">Enter Detailed Query</span>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="text">Upload File:</label>
<div class="col-sm-10">
<input type="file" class="form-control" id="filetoupload" name="upload" >
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">Submit</button>
<button type="reset" class="btn btn-default">Reset</button>
</div>
</div>
</form>
</div>
<hr>
<div class="panel-footer" align="center">© Copyright <?php echo date("Y");?></div>
</div>
</div>
</body>
</html>
提高票数
$(文档).ready(函数(){
//表单验证。
如果($('.validate issue').val()==''){$('.issue error').fadeIn();}
如果($('.validate query').val()==''){$('.query error').fadeIn();}
//获取表单值
var formData={
'ename':$('input[name=ename]')。val(),
'date':$('input[name=date]')。val(),
'ext':$('input[name=ext]')。val(),
'issue':$('select[name=issue]')。val(),
'query':$('input[name=query]')。val(),
'上传':$('input[name=upload]')。val()
};
如果($('.validate issue').val().trim())&($('.validate query').val().trim()){
//Ajax表单提交。
$.ajax({
类型:“POST”,
url:“insertticket.php”,
数据:formData,
成功:函数()
{
警报(“票据已被提出”);
}
});
}else{alert('请输入必填字段');}});
});
帮助台支持
提高罚单!
姓名:
- 仅在第一次加载时触发脚本。您可以尝试使用jQuery
- 我也不确定您是否可以通过名称/类/id获取文件内容来上传文件
- 不仅仅是为了删除额外的空间,也不是为了检查内容
- 你的列名中的那些点(
)到底是怎么回事
- 您应该使用
$\u FILES[“upload”][“name”]
而不是$\u POST[“upload”]
来获取用户附加的文件名
- 上传文件的代码在哪里
您可以同时尝试HTML的required
属性:
<input required="true" type="text" disabled class="form-control" id="text" name="ename" value="<?php echo ucwords($_SESSION['usr_name']); ?>">
然后,对于您的脚本:
$(document).ready(function(){
$("form#form-submission").submit(function(){ /* WHEN THE FORM IS SUBMITTED */
var formData = new FormData($(this)[0]); /* ALL THE DATA IS IN HERE INCLUDING THE FILE ATTACHED */
$.ajax({ /* CALL AJAX */
url: "insertticket.php", /* THE FILE WHERE THE DATA WILL GO */
type: "POST", /* TYPE OF METHOD TO BE USED TO PROCESS THE DATA */
data: formData, /* THE DATA TO BE PROCESSED */
contentType: false, /* TYPE OF DATA TO BE PASSED; FOR FILE PURPOSES THAT IS WHY IT IS SET TO FALSE */
processData: false, /* PREVENT AUTOMATIC PROCESSING */
success: function(result){ /* IF DATA IS PROCESSED SUCCESSFULLY */
alert(result); /* ALERT THE RETURNED DATA FROM inserticket.php */
}
});
return false;
});
});
您也已经在使用,因此更容易将代码转换为
这是您的insertticket.php:
<?php
$conn = new mysqli("localhost", "root", "", "helpdesk");
/* CHECK CONNECTION */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
if($stmt = $con->prepare("SELECT emp_code, dept, location, emailid, contact_no FROM user WHERE name = ?")){ /* PREPARE YOUR QUERY */
$stmt->bind_param("s", $_POST["ename"]); /* BIND THIS DATA TO YOUR QUERY, REPLACING ? WITH $_POST["ename"]; s STANDS FOR STRING TYPE */
$stmt->execute(); /* EXECUTE QUERY */
$stmt->bind_result($emp_code, $dept, $location, $emailid, $contact_no); /* BIND THE RESULTS TO THESE VARIABLES CORRESPONDINGLY */
$stmt->fetch(); /* FETCH THE RESULT */
$stmt->close(); /* CLOSE THE PREPARED STATEMENT */
}
if($stmt = $con->prepare("INSERT INTO ticket (emp_code, emp_name, dept, location, emailid, contact_no, date, issue_type, query, ext_no, attachment) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")){
$stmt->bind_param("sssssssssss", $emp_code, $_POST["ename"], $dept, $location, $emailid, $contact_no, $_POST["date"], $_POST["issue"], $_POST["query"], $_POST["ext"], $_FILES["upload"]["name"]);
$stmt->execute();
$stmt->close();
echo 'Record added';
}
move_upload_file($_FILES["upload"]["tmp_name"], "/system/uploads/".$_FILES["upload"]["name"]); /* UPLOAD THE FILE TO /system/uploads/ FOLDER; JUST REPLACE YOUR DESIRED DIRECTORY */
?>
- 始终查看浏览器的控制台日志以查找错误
你还应该考虑用户通过代码重命名上传的文件,以便在文件夹和数据库中是唯一的。防止重复的文件名导致文件被覆盖
如果你是一个新手,先尝试一下自己,在谷歌上搜索一下……如果没有获得你的ans,然后发布……先生,我自己也尝试过了,但仍然停留在dis上,所以我已经发布了!我不知道mysql是否会像这里的$sql=“INSERT-INTO-ticket(ticket\u-no.,emp\u-code,emp\u-name,dept,location,emailid,contact\u-no.,date,issue\u-type,query,ext\u-no.,attachment)值一样支持带有句点(.)的列(“%$emp_代码“,$emp_名称“,$dept“,$location“,$emailid“,$contact_no.”,“$date“,$issue_type“,$query“,$ext_no.”,“$attachment”);
您可能想删除这些点?好的。谢谢!也检查了,但无法将数据插入数据库检查此项,并使用isNAN()或html type=“number”进行数字检查主要部分是不要在列名中使用点(.)。谢谢!为同样的工作
$(document).ready(function(){
$("form#form-submission").submit(function(){ /* WHEN THE FORM IS SUBMITTED */
var formData = new FormData($(this)[0]); /* ALL THE DATA IS IN HERE INCLUDING THE FILE ATTACHED */
$.ajax({ /* CALL AJAX */
url: "insertticket.php", /* THE FILE WHERE THE DATA WILL GO */
type: "POST", /* TYPE OF METHOD TO BE USED TO PROCESS THE DATA */
data: formData, /* THE DATA TO BE PROCESSED */
contentType: false, /* TYPE OF DATA TO BE PASSED; FOR FILE PURPOSES THAT IS WHY IT IS SET TO FALSE */
processData: false, /* PREVENT AUTOMATIC PROCESSING */
success: function(result){ /* IF DATA IS PROCESSED SUCCESSFULLY */
alert(result); /* ALERT THE RETURNED DATA FROM inserticket.php */
}
});
return false;
});
});
<?php
$conn = new mysqli("localhost", "root", "", "helpdesk");
/* CHECK CONNECTION */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
if($stmt = $con->prepare("SELECT emp_code, dept, location, emailid, contact_no FROM user WHERE name = ?")){ /* PREPARE YOUR QUERY */
$stmt->bind_param("s", $_POST["ename"]); /* BIND THIS DATA TO YOUR QUERY, REPLACING ? WITH $_POST["ename"]; s STANDS FOR STRING TYPE */
$stmt->execute(); /* EXECUTE QUERY */
$stmt->bind_result($emp_code, $dept, $location, $emailid, $contact_no); /* BIND THE RESULTS TO THESE VARIABLES CORRESPONDINGLY */
$stmt->fetch(); /* FETCH THE RESULT */
$stmt->close(); /* CLOSE THE PREPARED STATEMENT */
}
if($stmt = $con->prepare("INSERT INTO ticket (emp_code, emp_name, dept, location, emailid, contact_no, date, issue_type, query, ext_no, attachment) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")){
$stmt->bind_param("sssssssssss", $emp_code, $_POST["ename"], $dept, $location, $emailid, $contact_no, $_POST["date"], $_POST["issue"], $_POST["query"], $_POST["ext"], $_FILES["upload"]["name"]);
$stmt->execute();
$stmt->close();
echo 'Record added';
}
move_upload_file($_FILES["upload"]["tmp_name"], "/system/uploads/".$_FILES["upload"]["name"]); /* UPLOAD THE FILE TO /system/uploads/ FOLDER; JUST REPLACE YOUR DESIRED DIRECTORY */
?>