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;">
请帮帮我。
我在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;">