通过jQuery向PHP发送/接收数据
我使用使用户输入一个名称来创建文件夹。我修改了代码,尝试通过jQuery发送表单数据,并通过jQuery接收来自PHP的成功/失败消息 但是,当我输入文件夹的名称时,什么也没有发生。未创建文件夹,也未显示任何错误。Firebug也没有显示任何错误 这是我到目前为止的代码: create.php:通过jQuery向PHP发送/接收数据,php,javascript,jquery,forms,Php,Javascript,Jquery,Forms,我使用使用户输入一个名称来创建文件夹。我修改了代码,尝试通过jQuery发送表单数据,并通过jQuery接收来自PHP的成功/失败消息 但是,当我输入文件夹的名称时,什么也没有发生。未创建文件夹,也未显示任何错误。Firebug也没有显示任何错误 这是我到目前为止的代码: create.php: <html> <head><title>Make Directory</title></head> <body> <div
<html>
<head><title>Make Directory</title></head>
<body>
<div id="albumform">
<form id="album_form" method="post" action="createAlbum.php" enctype="multipart/form-data">
<p id="message" style="display:none;">
<?php echo (isset($success)?"<h3>$success</h3>":""); ?>
<?php echo (isset($error)?'<span style="color:red;">' . $error . '</span>':''); ?>
</p>
<input type="text" id="create_album" name="create_album" value="" />
<input type="button" onclick="return checkForm('album_form');" id="btn_album" name="btn_album" value="Create" />
</form>
</div>
</body>
</html>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript">
/* $("#btn_album").click(function() { */
function checkForm(form) {
//create post data
var postData = {
"create_album" : $("#create_album").val()
};
//make the call
$.ajax({
type: "POST",
url: "createAlbum.php",
data: postData, //send it along with your call
success: function(response){
$('#message').fadeIn();
}
});
/* }); */
}
</script>
制作目录
ajax请求有一个坏习惯,就是静默失败。
您应该使用jQuery post并利用.success()、.complete()和.error()函数来跟踪代码。
还可以使用console.log()检查参数是否正确发送。我将亲自尝试代码以查看问题
ajax请求有一个坏习惯,就是静默失败。
您应该使用jQuery post并利用.success()、.complete()和.error()函数来跟踪代码。
还可以使用console.log()检查参数是否正确发送。我将亲自尝试代码以查看问题
由于$.ajax请求的性质,不会发送$\u POST['btn\u album']。所以你的php文件到了这里
if (isset($_POST['btn_album'])) {
返回false
您还需要回显$error以获得响应。由于$.ajax请求的性质,不会发送$\u POST['btn\u album']。所以你的php文件到了这里
if (isset($_POST['btn_album'])) {
返回false
您还需要回显$error以获得响应。您的代码至少有两个独立的问题:
在php文件中,检查是否设置了$\u POST['btn\u album']
。此字段不发送,因为它不是ajax请求的一部分(您只发送“创建相册”:$(“#创建相册”).val()
)。因此,创建文件夹的代码永远不会执行
另一个问题是零件
<?php echo (isset($success)?"<h3>$success</h3>":""); ?>
<?php echo (isset($error)?'<span style="color:red;">' . $error . '</span>':''); ?>
您的代码至少存在两个不同的问题:
在php文件中,检查是否设置了$\u POST['btn\u album']
。此字段不发送,因为它不是ajax请求的一部分(您只发送“创建相册”:$(“#创建相册”).val()
)。因此,创建文件夹的代码永远不会执行
另一个问题是零件
<?php echo (isset($success)?"<h3>$success</h3>":""); ?>
<?php echo (isset($error)?'<span style="color:red;">' . $error . '</span>':''); ?>
谢谢你的意见!我纠正了第一个问题,现在它正在创建文件夹,但没有显示成功/错误消息。这会引发第二个问题。如何通过jQuery显示PHP文件中的成功/错误消息?在最后一个大括号之前回显$error,然后在ajax请求中传递给“success”。然后您可以编写$('#message).html(成功)谢谢您的输入!我纠正了第一个问题,现在它正在创建文件夹,但没有显示成功/错误消息。这会引发第二个问题。如何通过jQuery显示PHP文件中的成功/错误消息?在最后一个大括号之前回显$error,然后在ajax请求中传递给“success”。然后您可以编写$('#message).html(成功)