无法将文本区域输入传递给PHP变量


Cannot pass textarea input to PHP variable

首先,我使用3种语言。HTML、Javascript和PHP。我无法将用户输入的文本区域文本传递给PHP变量,该变量将在发送的电子邮件中用作消息。我认为问题在于,我的文本区域实际上在一个模态窗口中,出于某种原因,我认为这就是把事情搞砸的原因。

这是我的HTML代码:

<div class="rejectModal" title="rejectModal" id="rejectModal" style="display: none; padding:15px ">          
    <form name="rejectForm" action="">
    <textarea id="rejectArea" name="rejectArea" rows="6" cols="43">{$rejectAreaNote}</textarea> 

    <input type="button" value="Reject" class="btn success" id="submitReject" name="Reject" />
    <input class="btn" type="reset" value="Cancel" id="btnCancelSaveModal"  />
    </form>
</div>

JS代码:

$(function() {  
$(".submitReject").click(function() {  
    // validate and process form here  
    $('.error').hide();  
    var rejectAreaNote = $("textarea#rejectArea").val();  
    var noteLength = rejectAreaNote.length;
    if (rejectAreaNote == "" || noteLength < 5) {  
        $("label#rejectArea_error").show();  
        $("textarea#rejectArea").focus();  
        return false;  
    }  
    var dataString = rejectAreaNote;  
    alert (dataString);
    //return false;  
$.ajax({  
    type: "POST",  
    url: "gs_ViewDocument.php",  
    data: {
        "Reject" : "Reject",
        "rejectAreaNote" : "rejectAreaNote"
    },
    success: function() {  
        $('#reject_form').html("<div id='message'></div>");  
        $('#message').html("Reject Submitted!");
    }  
});  
    return false;  
 });  

});

创建Modal(JS)的原因:

    $('.rejectModal').css("background", "lightblue");
          $('#btnRejectDocument').bind(isTouchScreen ? "touchstart" : "click", function(){
       if (!gsSelection.unselectElem()) return false; 
           $('.rejectModal').dialog({
           modal:true, 
           resizable:false,
        width: 400,
    }).removeClass("ui-widget-content");
    $(".ui-dialog-titlebar").hide();
    return;
 });
$('#btnRejectDocumentModal').bind(isTouchScreen ? "touchstart" : "click", function(){
   $(this).parents('div.rejectModal').dialog('close');
});
$('#btnCancelSaveModal').bind(isTouchScreen ? "touchstart" : "click", function(){
   $(this).parents('div.rejectModal').dialog('close');
});

PHP代码:

if(isset($_POST['Reject'])&&$_POST['Reject']=='Reject')     
 {
      $isReject = true;
      RejectAction($DocumentID, $ClientName, $ClientEmail);
      $smartyvalues["isReject"] = $isReject;
      $smartyvalues["RejectMsg"] = "successfully rejected!";
 }

他的孩子也很新非常感谢您的帮助。

Textarea没有value属性。如果要将值添加到文本区域,请将其添加到标记内:<textarea>value</textarea>所以试着把它改成这样:

<textarea id="rejectArea" name="rejectArea" rows="6" cols="43"/>{$rejectAreaNote}</textarea>
if(isset($_POST['Reject']) ...

您没有将其发送到服务器。相反,您发送的是"dataString",它只是来自文本区域的文本。相反,您应该发送一个包含所需字段的对象:

    $.ajax({  
        type: "POST",  
        url: "gs_ViewDocument.php",  
        data: {
            "Reject" : "Reject",
            "rejectAreaNote" : "rejectAreaNote"
        },
        success: function() {  
            $('#reject_form').html("<div id='message'></div>");  
            $('#message').html("Reject Submitted!");
        }  
    });  

我仍然不确定你的代码应该做什么,以及它是如何结合在一起的,但这里肯定是错误的。