Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 验证数据&;将数据插入mysql_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Php 验证数据&;将数据插入mysql

Php 验证数据&;将数据插入mysql,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我正在制作一个帮助台页面,在那里我有一个页面来提出问题。我有一张表格,我想在表格中填写问题类型和查询字段,必须填写扩展编号的数据,并验证数据。也就是说,它应该只填写编号。 我尝试过通过ajax和表单验证获取代码,但无法执行代码&值没有插入到mysql数据库中 请帮忙 Ticket.php <?php session_start(); ?> <!DOCTYPE html> <html lang="en"> <head> <title

我正在制作一个帮助台页面,在那里我有一个页面来提出问题。我有一张表格,我想在表格中填写问题类型和查询字段,必须填写扩展编号的数据,并验证数据。也就是说,它应该只填写编号。 我尝试过通过ajax和表单验证获取代码,但无法执行代码&值没有插入到mysql数据库中

请帮忙

Ticket.php

    <?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">&copy 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 */

?>