我正在努力使用ajaxForm将数据传递到我的PHP文件,因此我可以插入到MySQL数据库中。
以下是当前在表单提交过程中显示进度条的JavaScript函数,问题是' post'名称,电话和电子邮件不起作用,但附件上传确实有效。
$(function() {
var name = document.getElementById("name").value;
var phone = document.getElementById("phone").value;
var email = document.getElementById("email").value;
var percent = $('.percent');
var bar = $('.bar');
$('form').ajaxForm({
dataType: 'json',
data : {
name:name,
phone:phone,
email:email
},
beforeSend: function() {
document.getElementById("bar").style.backgroundColor="rgb(51,166,212)";
bar.width('0%');
percent.html('0%');
},
uploadProgress: function(event, position, total, percentComplete) {
var pVel = percentComplete + '%';
bar.width(pVel);
percent.html(pVel);
},
complete: function(data) {
document.getElementById("bar").style.backgroundColor="rgb(185,221,111)";
percent.html("Done!");
setTimeout(function(){
modal.style.display = 'none';
location.reload();
}, 2000);
}
});
});
以下是PHP文件中要传递值的代码。
<?php
include("sql_connection.php");
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$sql = "INSERT INTO helpdesk (Name, Phone, Email) VALUES ($name, $phone, $email)";
mysqli_query( $conn, $sql);
$dir = 'uploads/';
$count = 0;
if ($_SERVER['REQUEST_METHOD'] == 'POST' and isset($_FILES['files']))
{
foreach ( $_FILES['files']['name'] as $i => $name )
{
if ( !is_uploaded_file($_FILES['files']['tmp_name'][$i]) )
continue;
if( move_uploaded_file($_FILES["files"]["tmp_name"][$i], $dir . $name) )
$count++;
}
}
echo json_encode(array('count' => $count));
?>
有什么建议吗?
由于
答案 0 :(得分:1)
将您的SQL查询更改为:
$sql = "INSERT INTO helpdesk (Name, Phone, Email) VALUES ('".$name."', '".$phone."', '".$email."')";
否则您需要在开始数据库连接的顶部更改包含。
正如我在您的评论中所读到的,问题是输入可能不包含任何值。你什么时候启动Ajax请求?提交或页面加载后?
也许您可以将代码添加到他应该从哪里获取信息?
答案 1 :(得分:0)
$ .ajax
中缺少类型参数$('form').ajaxForm({
type: 'POST',
dataType: 'json',
data : {'name':name,'phone':phone,'email':email},
......................................
答案 2 :(得分:0)
所有,感谢您的帮助,SQL查询实际上是错误的,但我还需要使用每个变量的函数在发布之前返回其当前状态。
由于
$('form').ajaxForm({
type: 'POST',
dataType: 'json',
data : {
name:function () {
return name = document.getElementById("name").value;
},
phone:function () {
return phone = document.getElementById("phone").value;
},
email:function () {
return email = document.getElementById("email").value;
}
},