无法将textarea输入传递给PHP变量

时间:2013-07-24 16:17:49

标签: php javascript html textarea

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

这是我的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!";
 }

他也很新 非常感谢任何帮助。

2 个答案:

答案 0 :(得分:5)

Textarea没有值属性。如果要为textarea添加值,请将其添加到标记内:<textarea>value</textarea> 所以尝试将其更改为:

<textarea id="rejectArea" name="rejectArea" rows="6" cols="43"/>{$rejectAreaNote}</textarea>

答案 1 :(得分: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!");
        }  
    });  

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