ajax实现php查询,PHP和AJAX:AJAX正在工作,PHP没有实现查询

慢慢地但肯定地,我要去获取AJAX。我有一个表单将文本字段和文件上传到数据库。我早些时候在PHP中使用过查询,但没有使用AJAX。现在AJAX正在工作,但不是PHP。而且我知道有些人会发现将图像加载到BLOB是令人反感的,但查询本身是有效的,所以我想专注于让我的javascript与我的PHP交谈的问题。我已经研究了这个问题,并且尝试了很多东西,但是我所做的事情是上传文件非常复杂。PHP和AJAX:AJAX正在工作,PHP没有实现查询

问题 1.纠正我,如果我错了,但如果JavaScript和jQuery实现“POST”调用,传递的参数不应该显示在页面的URL?因为他们是。

2.为什么我的PHP文件没有解析出发送的数据并将其发送到数据库?我可以在URL和Firebug中看到(虽然我也在慢慢学习Firebug),但是数据正在通过。我运行了一个测试php文件,并用该文件连接数据库。

谢谢!

HTML

$(document).ready(function(){

$('#addForm').validate();

function addRecord() {

$("#aTable").hide('slow', function() { //this is not working

alert('Working on it.');

});

$("#tableText").hide('slow', function() {//this is not working

alert('Working on it.');

});

var output = document.getElementById("message");

var nAname = document.getElementById("aname");

var nAInfo = new FormData(document.forms.namedItem("addForm"));

nAInfo.append('aname', nAname);

$.ajax({

type: "POST",

url: "addPhoto.php",

data: nAInfo

});

});

Name:

Photo:

PHP

ini_set('display_errors', 'On');

ini_set('display_startup_errors', 'On');

error_reporting(E_ALL);

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

if ($mysqli->connect_errno) {

echo "Failed to connect to MySQL: (" . $db->connect_errno . ") " . $db->connect_error;

}

if ($mysqli->connect_errno) {

echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;

}

echo $_SERVER['REQUEST_METHOD'];

$aname = $_POST['aname'];

$errorinfo = $_FILES["aimage"]["error"];

$filename = $_FILES["aimage"]["name"];

$tmpfile = $_FILES["aimage"]["tmp_name"];

$filesize = $_FILES["aimage"]["size"];

$filetype = $_FILES["aimage"]["type"];

$fp = fopen($tmpfile, 'r');

$imgContent = fread($fp, filesize($tmpfile));

fclose($fp);

if (!($filetype == "image/jpeg" && $filesize > 0)) {

echo "Import of photo failed";

}

if ($filetype == "image/jpeg" && $filesize > 0 && $filesize < 1048576) {

if (!($stmt=$mysqli->prepare("INSERT INTO actor_info (aname, aimage_data) VALUES (?,?)"))) {

echo "Prepare failed: (" . $mysqli->errno . ")" . $mysqli->error;

}

if (!$stmt->bind_param("ss", $aname, $imgContent)) {

echo "Binding parameters failed: (" . $stmt->errno .") " . $stmt->error;

}

if (!$stmt->execute()) {

echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;

}

$stmt->close();

}

else {

echo "Image must be under 1 MB";

}

echo mysqli_error();

mysqli_close($mysqli);

?>

+1

停止。从这个代码退后一步。看看它有多疯狂。你正在使用jquery ...但实现你的** OWN ** ajax代码? **为什么**? jquery内置了精彩和简单的ajax接口:http://api.jquery.com/jQuery.post/ –

2013-02-20 17:35:36

+0

同样,如果你的表单参数出现在url中,那么你可能不会做POST,这很可能是一个GET。你可以通过在你的php代码中执行'echo $ _SERVER ['REQUEST_METHOD']'来进行简单的调试。你的文件处理代码很残酷。 'addslashes()'是如此蹩脚,它甚至不希望被称为残暴。 **从不**使用它,特别是在数据库代码中。 **从不*假设文件上传成功。 ** **从来没有在$ _FILES –

2013-02-20 17:39:18

+0

@Marc B I已经尝试没有成功$就以下信任数据({ 类型: “POST”, 网址: “addActorPhoto.php”, 数据:nAInfo }) ; –

2013-02-20 17:44:41

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值