PHP 表单只返回空数组

PHP form only returning empty array

我正在编写一个代码段,该代码段是名称列表旁边的消息传递功能。页面上有一个信封,当您单击它时,会出现一个弹出窗口 window,里面有一个文本区域。我希望能够用字符填充该文本区域,并使用我已经运行的 sendMessage 函数将其作为消息发送。我知道我的 sendMessage 函数有效,并且我已将问题隔离到提交按钮给出的 return。如何让我的提交按钮 POST 到页面的文本区域(请记住,此页面上有 2 个以上的表单)。代码如下所示:

if (empty($_POST) === false) {
    print_r($_POST);
    $blah = $_POST;
    echo "<script>window.top.location='asd.$blah'</script>"; 
}

if (empty($_POST['Send']) === false) {

    echo "<script>window.top.location='../hidden/PNMasdd.php?gpa=$var1&year=$var2&major=$var3&sport=$var4'</script>";
    echo 'YOU ARE IN THE SENDING MESSAGE FIELD';

    if( empty ($_POST['message_full']))
        {
            $errors[] = 'All fields must be filled in!';
            //print_r($errors);
        }

    if(empty($_POST) === false && empty($errors) === true)
        {
            $receiver_id = $temp_user['id'];
            $sender_id   = $user_data['id'];

            $type = 0;

            if(empty($is_Convo))
                {
                    $is_Convo = 0;  
                }

            $blahVar = $user_data['id'] . ',';
            $message = str_replace("\r\n", "<br>", $_POST['message_full']);
            $message_data = array(
                                  'sender_id'               => $user_data['id'],
                                  'receiver_id'         => $receiver_id,
                                  'message_full'            => $message,
                                  'is_opened'               => $blahVar,
                                  'isConvo'             => $is_Convo,
                                  'type'                    => $type
                                  );
            //Put data limit code here

            send_message($message_data);
            $my_exten = "Messages/messages.php";
            $noti_data = array(
                               'id_receive'         => $receiver_id,
                               'id_sent'                => $user_data['id'],
                               'type'                   => 1,
                               'exten'                  => $my_exten   
                               );
            notify($noti_data);

            echo '<center>';
            echo '<div class="alert alert-info">
                          <strong>It sent!</strong> You have sent a message successfully!
                  </div>
        ';
            echo '</center>';
        }
    else{
        echo output_errors($errors);
    }
}   

?>

<form id="wow" name="wow" action="" method="POST">
    <div class="row">

    </div>
    <div class="row">
    <div class="form-group">
    <div class="col-md-12">
    <center>
    <textarea maxlength="100000" data-msg-required="Please enter your message." rows="10" cols="100%" class="form-control" name="message_full" id="message_full"></textarea>
    </center>
    </div>
    </div>
    </div>

</form>

</div>
<div class="modal-footer">
<table width=90%><td width=45%><button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button></td><td width=45%> 

<button type="submit" value="Send Message" name="Send" onclick="document.getElementById('wow').submit()" class="btn btn-primary">Send</button>

正如@Barmar 所说,您没有任何名为'Send' 的字段。你应该改变:

if (empty($_POST['Send']) === false)

至:

if (empty($_POST['message_full']) === false)

(编辑)

只有表单中的字段会到达 $_POST 超全局,提交按钮不会到达那里

正如评论中所指出的,按钮需要位于您的表单内。

你的设置对我来说有点奇怪,但试试这个..它很可能需要一些调整,我不确定取消按钮..

  <form id="wow" name="wow" action="" method="post" >
    <div class="form-group required">
      <div class="col-md-12">
        <textarea name="message_full" id="message_full" rows="10" cols="100%" class="form-control" maxlength="10000" placeholder="Please enter your message." autocomplete="off"></textarea>
      </div>
    </div>


    <div class="buttons"> <!-- add css for this or change the class to yours.. -->
        <input class="btn btn-default" data-dismiss="modal" value="Cancel" />
        <input class="btn btn-primary" type="submit" value="Send Message" />
    </div>
  </form>