麻烦if($ _ SERVER [' REQUEST_METHOD'] ==" POST")

时间:2015-01-02 02:57:34

标签: php jquery ajax

请帮帮我。

我在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)一样正常工作。

如果($ _ SERVER ['REQUEST_METHOD'] ==“POST”)在数据输入(状态)为空/空时无法通过ajax请求回显输入,请说明原因。

千万分谢谢。 :)

1 个答案:

答案 0 :(得分:0)

我不确定为什么将文件输入保留为未填充是重要的,但是在使用AJAX时需要禁用正常的表单提交。 onclick函数应返回false来执行此操作。

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