我想使用PHP发布我的表单,但由于某种原因似乎不可能,无论我尝试发布消息总是空的。
我试过这段代码:
HTML
<div class="message-container">
<form id="imageForm" name="form" action="/requests/post_message.php" method="POST" enctype="multipart/form-data">
<div class="message-form-content">
<div class="message-form-header">
<div class="message-form-user"></div>
<div class="message-form-private"></div>
<div class="message-loader" id="post-loader" style="visibility: hidden"><div class="preloader"></div></div>
</div>
<div class="message-form-inner">
<textarea id="post" class="message-form" placeholder="message_form" name="message"></textarea>
</div>
<div class="selected-files"><span id="queued-files">0</span> Files selected</div>
<div class="message-form-input"><input type="text" name="value" id="form-value"></div>
<div type="button" name="action" class="message-btn button-active" value="Post"><a onclick="startUpload()">Post</a></div>
</div>
<iframe id="my_iframe" name="my_iframe" src="" style="display: none"></iframe>
</form>
</div>
的JavaScript
function startUpload() {
document.getElementById("imageForm").target = "my_iframe";
document.getElementById("imageForm").submit();
alert($("#imageForm").serialize()); //for debug
document.getElementById("post-loader").style.visibility = "visible";
}
post_message.php
<?php
include("../includes/config.php");
session_start();
print_r($_POST['message']);
从网络控制台我仔细检查了请求,这是正确的,我可以看到POST with status 200
。
但是,当我写入textarea
并单击Post
按钮时,JS alert
会正确显示消息,而我的PHP的print_r
为空,我的表格有什么问题?
答案 0 :(得分:1)
在实际解决问题之前,答案已被接受。我不知道到底问题究竟在哪里。最初提问者说GET根据他的浏览器检查员发送了请求,但后来撤回了。
我只发现这是错的:
alert($("imageForm").serialize()); //for debug
应该是:
alert($("#imageForm").serialize()); //for debug
更好的是:
console.log($("#imageForm").serialize()); //for debug
答案 1 :(得分:-1)