if($_SERVER['REQUEST_METHOD'] == "POST") 的问题

trouble with if($_SERVER['REQUEST_METHOD'] == "POST")

请帮帮我。

我在index.php

中有这样的表格
<form id="statusForm" enctype="multipart/form-data" method="post">
    <textarea name="statusText" role="textbox" id="wallpost"></textarea>
    <input id="photo_input" type="file" name="photo_input" />
    <input type="hidden" name="to_id" value="1" > 
    <button type="button" name="submit" onClick="write_wall_post();">
</form>
<div id="content"></div>

然后我有 .js 文件来处理这个表单

function write_wall_post()
{

var formData = new FormData($("#statusForm")[0]);
  $.ajax({
        type: "POST",
        url: "act_post_status.php",
        data: formData, 
        success: function(data){
            $("#wallpost").val("");             
            $("#photo_input").val('');
            var newStatus=data;
            $(newStatus).hide().prependTo("#content").fadeIn(2000);
        },
        processData: false,  // tell jQuery not to process the data
        contentType: false,
        cache:false
   });
}

我有 act_post_status.php 来处理这个提交的文件

<?php 
//some configuration
if($_SERVER['REQUEST_METHOD'] == "POST")
{   
    //some variable declaration and image validation
    //Original Image
    if(move_uploaded_file($uploadedfile, $path.$time.'.'.$ext))
    {
        $is_image=1;
    }
    else
        echo "failed";
    }
}


 //inserting data to database
   $status = trim(strip_tags(htmlspecialchars($_POST["statusText"])));
   mysql_query("insert into news (status,is_image) values ('$status','$is_image')");
   echo "<div class='post'>$status</div>";
?>

我想要的场景是: 当用户输入数据(状态),然后点击提交按钮,内容自动显示更新(由jquery处理)

但事实是:

(1) 当我完成表格(状态和图片)时,它正常工作。

(2) 但是当我只完成数据表单(仅填写状态输入)时,它已成功提交到数据库,但内容不会自动更新。我应该刷新它们以获取更新。

(3) 当我只是填充图像输入时,它像情况(1)一样正常工作。

请帮忙解释为什么 if($_SERVER['REQUEST_METHOD'] == "POST") 当数据输入(状态)为 [=39= 时无法响应 ajax 请求的输入].

万分感谢。 :)

我不确定为什么不填写文件输入很重要,但是在使用 AJAX 时需要禁用正常的表单提交。 onclick 函数应该 return false 来做到这一点。

<button type="button" name="submit" onClick="write_wall_post();return false;">