2017-01-03 93 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