通过jQuery向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

我使用使用户输入一个名称来创建文件夹。我修改了代码,尝试通过jQuery发送表单数据,并通过jQuery接收来自PHP的成功/失败消息

但是,当我输入文件夹的名称时,什么也没有发生。未创建文件夹,也未显示任何错误。Firebug也没有显示任何错误

这是我到目前为止的代码:

create.php:

<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(成功)