【发布时间】:2016-03-23 11:18:18
【问题描述】:
我正在努力使用 ajaxForm 将数据传递给我的 PHP 文件,以便我可以插入 MySQL 数据库。
以下是目前在表单提交过程中显示进度条的 JavaScript 函数,问题是姓名、电话和电子邮件的“帖子”不起作用,但附件上传可以。
$(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));
?>
有什么建议吗?
谢谢
【问题讨论】:
-
插入查询中的值必须用引号括起来它应该是
$sql = "INSERT INTO helpdesk (Name, Phone, Email) VALUES ('".$name."', '".$phone."', '".$email."')"; -
谢谢,这么简单的答案。它现在将行插入到我的表中,但所有值都是空白的。知道为什么吗?
-
只需在你的ajax中添加
type: "POST", -
如果我改变 var name = document.getElementById("name").value;到 var name = "test";.我想知道这是否是因为变量已经设置为 onload?
标签: javascript php mysql ajax