0

首先,我正在使用 3 种语言。HTML、Javascript 和 PHP。我无法将用户输入的 textarea 文本传递给 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;  
 });  

});

是什么创建了模态(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!";
 }

非常感谢他的任何帮助。

4

2 回答 2

5

Textarea 没有 value 属性。如果您想为您的文本区域添加一个值,请将其添加到标签内:<textarea>value</textarea> 因此请尝试将其更改为:

<textarea id="rejectArea" name="rejectArea" rows="6" cols="43"/>{$rejectAreaNote}</textarea>
于 2013-07-24T16:22:03.490 回答
1
if(isset($_POST['Reject']) ...

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

    $.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!");
        }  
    });  

我仍然不确定您的代码应该做什么以及它如何粘合在一起,但这绝对是错误的。

于 2013-07-24T16:28:12.887 回答