2016-10-14 38 views
0

我试图使用下面的代码来填充表和注释和时间戳。不幸的是,当$ _POST被调用时它似乎总是有一个空值(仅在php中发布“Post in Error”错误)。任何想法为什么?

HTML:

 <main> 
     <section id="createComment"> 
      <fieldset> 
       <legend><strong>Leave A Comment</strong></legend> 
        <textarea id="commentField" class="text" 
         name="commentField"></textarea> 
        <button id="submitCComment" onClick="submitComment()" 
          value="Submit">Submit</button> 
      </fieldset>  
     </section> 

     <br> 

     <table id="commentsTbl"> 
      <tr> 
       <th class="row-datetime">Date Time</th> <th class="row-comment">Comment</th> 
      </tr> 
     </table> 

    </main> 

的Javascript:

function submitComment() { 
    var comment = document.getElementById("commentField").value; 
    if (comment == "" || comment == null){ 
     alert("Comment cannot be blank"); 
     return false; 
    } else { 
     var request = new XMLHttpRequest(); 
     request.onreadystatechange = function() { 
      if(request.readyState == 4 && request.status == 200) { 
       var text = request.responseText; 
       var parser = new DOMParser(); 
       var parsedXML = parser.parseFromString(text, "text/xml"); 
       var datetime = parsedXML.getElementsByTagName("datetime")[0].childNodes[0].nodeValue; 
       var comment = parsedXML.getElementsByTagName("comment")[0].childNodes[0].nodeValue; 
       var table = document.getElementById("commentsTbl"); 
       var newRow = table.insertRow(1); 
       var newCell = newRow.insertCell(0); 
       newCell.innerHTML = datetime; 
       newCell = newRow.insertCell(1); 
       newCell.innerHTML = comment; 
      } 
     }; 
     // submit request to the server 
     request.open("POST", "/PHP/ProcessCommentDateTime.php", true); 
     request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
     request.send("comment=" + comment); 
     document.getElementById("commentField").value = ""; 
    } 
} 

PHP:

<?php 
    $comment; 
    $comment = $_POST["commentField"]; 
    date_default_timezone_set('UTC'); 
    $datetime = date("Y-m-d H:i:s"); 
    if($comment == null){ 
     $comment = "Error on Post"; 
    } 

    //storeComment($comment, $datetime); 

    echo('<usercomment>' . 
      '<datetime>' . $datetime . '</datetime>' . 
      '<comment>' . $comment . '</comment>' . 
      '</usercomment>'); 
?> 

回答

2

您发送密钥comment并尝试接收为$comment = $_POST["commentField"];

更改为

$comment = $_POST["comment"]; 

尝试在浏览器控制台开发工具网络中检查这些请求。你可以看到究竟发送了什么,状态和返回的内容

+0

完美的作品。谢谢! –