2017-01-03 32 views
0

我想使用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

您发送GET,并检查POST变量。检查'$ _GET'而不是$ _POST。 – yivi

+0

alert($(“#imageForm”)。serialize()); //用于调试? –

+0

@VladimirM我看到这个http://stackoverflow.com/a/7667608/4458531 – NineCattoRules

回答

1

回答在实际解决问题之前已被接受。我不清楚到底问题出在哪里。提交者最初表示,该请求是由GET根据其浏览器检查员发送的,但后来将其撤回。

我才发现,这是错误的:

alert($("imageForm").serialize()); //for debug 

应该是:

alert($("#imageForm").serialize()); //for debug 

,更好地:

console.log($("#imageForm").serialize()); //for debug 
+1

好的,但是呢? '

' – NineCattoRules

+0

对不起,你说得对。但是你说在控制台中你看到一个状态为200的GET请求... – yivi

+1

当我点击POST按钮时POST_请求发送页面post_message.php – NineCattoRules

-1

如果你把脚本某处它应该工作标题。

JSFiddle -> Javascript -> Load type -> No wrap - in <head> 

Working fiddle