php到ajax textarea变量没有显示

时间:2012-12-17 05:09:05

标签: javascript ajax

我一直在尝试将一个变量从php发送到AJAX,以前它曾经工作过,而且突然之间没有。我一直试图理解为什么在过去的几个小时里,阅读关于传递变量而没有运气。

出于某种原因,我无法将textarea放入我的ajax并将其发布到应用程序的其余部分。它给了我一个空警报,但var name = $("input[name='name']").val();正确提醒。

这是html

<script type="text/javascript" src="http://example.com/_data/js/addreply.js"></script>
    <input type="hidden" name="hiddenid" value="6" />
    <div id="writeCommTxt" >
        <textarea name="text" cols="90" rows="12" class="txtclassic" ></textarea>                            
        <div id="writeCommCapt">
            <div id="writeCommCaptSub"><input type="submit" name="postcomm" value="Submit" class="subclassic" /></div>
        </div>
    </div>

这是一个单独的文件中的AJAX。

$(document).ready(function (){
$(".subclassic").click(function (){
    var id = $("input[name='hiddenid']").val();
    var name = $("input[name='name']").val();
    var text = $(".txtclassic").val(); //i also tried to add textarea['text'].val() with no success.
    var capt = $("input[name='captcha']").val();
    alert(text); //it alerts an empty window.
    if (name != "" && text != ""){
        $.ajax({
          type: 'POST',
          url: "/article/add_reply/" + id,
          data: {
              rename: name,
              retxt: text,
              recapt: capt
          },
          success: function (data){
           ...
          }
        });
    }
});
});

3 个答案:

答案 0 :(得分:1)

<强> Demo

你为什么不使用id? 在你的情况下,我猜是:

$('textarea[name="text"]').val();

答案 1 :(得分:0)

首先将id属性添加到textarea,如下所示。

<textarea name="text1" id="text1" cols="90" rows="12" class="txtclassic" ></textarea> 

现在可以像这样访问

var text = $('#text1').val();;   

答案 2 :(得分:0)

为什么不使用jQuery的serialize()函数? 将所有输入控件放在<form>标记之间,给它一个id,然后调用该元素上的serialize函数

<form id="myform">
        <input type="hidden" name="hiddenid" value="6" />
        <div id="writeCommTxt" >
            <textarea name="text" cols="90" rows="12" class="txtclassic" ></textarea>                            
        <div id="writeCommCapt">
            <div id="writeCommCaptSub"><input type="submit" name="postcomm" value="Submit" class="subclassic" /></div>
        </div>
</form>

然后在你的脚本中

var myFormData = jQuery("#myform").serialize();
        $.ajax({
          type: 'POST',
          url: "/article/add_reply/" + id,
          data: myFormData,
          success: function (data){
           ...
          }
        });

至于原始问题,你可能有其他元素与“txtclassic”类,如果是这样,它将获取它找到的第一个并尝试获取其值(如果它不是输入控件,它将不会返回任何内容)