2017-09-20 40 views
0

目前正在爲我的網站開發郵件系統。我創建了一個JavaScript函數來發送發佈數據,以及一個相應的PHP文件來插入數據。但是,數據不會被髮送到數據庫。我不確定錯誤是在JavaScript還是PHP文件中,因爲沒有創建錯誤日誌。爲什麼這個post方法不被檢索?

HTML

<form action="javascript:sendPM();" name="pmForm" id="pmForm" method="post"> 
    <input name="pm_send_id" id="pm_send_id" type="hidden" value="<?php echo $_SESSION['userID']; ?>" /> 
    <input name="pm_send_name" id="pm_send_name" type="hidden" value="<?php echo $_SESSION['userName']; ?>" /> 
    <input name="pm_receive_id" id="pm_receive_id" type="hidden" value="<?php echo $row['userID']; ?>" /> 
    <input name="pm_receive_name" id="pm_receive_name" type="hidden" value="<?php echo $row['userName']; ?>" />    
    <a href="#close" title="Close" class="close">X</a> 
    <h4>Send to <?php echo $row['userName']; ?></h4> 
    <div class="sectionheader"></div> 
    <div id="interaction"></div> 
    <br> 
    <p>Comment:</p> 
    <textarea name="pmTextArea" id="pmTextArea"></textarea> 
    <p>Select Video:</p> 
    <input name="pmSubmit" type="submit" value="Submit" /> 
</form> 

的JavaScript

$('#pmForm').submit(function(){$('input[type=submit]', this).attr('disabled','disabled');}); 
    function sendPM(){ 
    var pmTextArea = $("pmTextArea"); 
    var sendName = $("pm_send_name"); 
    var sendID = $("pm_send_id"); 
    var receiveName = $("pm_receive_name"); 
    var receiveID = $("pm_receive_id"); 
    var url = "messages.php"; 
    if (pmTextArea.val() == ""){ 
     $("#interaction").html('Comment field is empty.').show().fadeOut(5000); 
    } 
    else { 
    $.post(url,{ message: pmTextArea.val(), sendername: sendName.val(), senderid: sendID.val(), recname: receiveName.val(), recID: receiveID.val() }, function(data){ 
     $("#interaction").html(data).show().fadeOut(5000); 
     document.pmForm.pmTextArea value=''; 
     }); 
    } 
    } 

PHP

<?php 
session_start(); 
require_once 'class.channel.php'; 
require_once 'dbconfig.php'; 
$user_message = new USER(); 

if (isset($_POST['message'])) { 
    $to = ($_POST['recID']); 
    $from = ($_POST['senderid']); 
    $toName = ($_POST['sendername']); 
    $fromName = ($_POST['recname']); 
    $msg = htmlspecialchars($_POST['message']); 

    $stmt = $user_message->runQuery("INSERT INTO inbox(send_id, receive_id, timesent, comment) VALUES(?, ?, ?, ?)"); 
    $stmt->bindValue(1,$from); 
    $stmt->bindValue(2,$to); 
    $stmt->bindValue(3,now()); 
    $stmt->bindValue(4,$msg); 
    $stmt->execute(); 
} 
?> 
+1

你在你的'INSERT 3場',但是4個佔位符。既然你有4個'bindValue()',我假設你錯過了'INSERT'中的一個字段。打開錯誤報告可能會幫助您在將來輕鬆進行調試。 'error_reporting(E_ALL); ini_set(「display_errors」,1);' – ishegg

+0

我確實是。但是,它仍然不適用於更改。沒有錯誤報告。 – Cordell

+1

它的jquery'document.pmForm.pmTextArea value ='';'和選擇器缺少'#' –

回答

2

您需要使用#使用他們的缺失值id檢索值。

var pmTextArea = $("pmTextArea"); 

應該

var pmTextArea = $("#pmTextArea"); 

是的,你需要更正,其中@RyanHame指出

document.pmForm.pmTextArea value=''; 

document.pmForm.pmTextArea.value=''; 
相關問題