1

PHP から AJAX に変数を送信しようとしてきましたが、以前は機能していましたが、突然機能しなくなりました。過去数時間、運がない変数の受け渡しについて読んで、その理由を理解しようとしていました。

何らかの理由で、テキストエリアを 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){
           ...
          }
        });
    }
});
});
4

3 に答える 3

1

デモ

なんでID使わないの?あなたの場合、私はそれがあると思います:

$('textarea[name="text"]').val();
于 2012-12-17T05:17:37.880 に答える
0

まず、次のように id 属性を textarea に追加します。

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

このような値にアクセスします

var text = $('#text1').val();;   
于 2012-12-17T05:21:31.230 に答える
0

jQuery のserialize()関数を使用しないのはなぜですか? タグの間にすべての入力コントロールを<form>配置し、ID を指定してから、その要素でシリアル化関数を呼び出します。

<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」を持つ他の要素がある可能性があり、その場合、最初に見つかった要素を取得してその値を取得しようとします (入力コントロールでない場合は何も返しません)。

于 2012-12-17T05:21:51.557 に答える