2011-11-08 15 views
1

を使用してAJAX呼び出しによって要素の値を取得できません正しい値を返します。問題は、私は、私はここに私のPHPでの問題のIDのいずれかの実際の値に設定したクラスvotes_problem_id_valueの値を取得して設定することができないということである。は、私はこのようないくつかのjQueryコードを持ってjQueryの

 echo '<span class="half_text" style="color: #B77F37;">'.$problem_date.'</span> <span id="votes" class="votes_'.$problem_id.' half_text" style="padding-left: 10px;">'.$vote.'</span><strong> <a class="vote_up" style="font-size: 80.0%; color: #295B7B; font-weight:bold; text-decoration:none;" href="#" data-problem_id="'.$problem_id.'">Important</a></strong> | <strong><a class="vote_down" style="font-size: 80.0%; color: #295B7B; font-weight:bold; text-decoration:none;" href="#" data-problem_id="'.$problem_id.'">Not Important</a></strong>'; 

私が間違っているとどのように私は来ていますどのような任意のアイデアそのスパンの内容を設定することはできませんclass = "votes _ '。$ problem_id。 half_text "

ありがとう!!

+0

は$(CLASS_NAME)配列のですか? $(class_name)[0] .val(html);を実行します。作業? – sissonb

+0

@sissonb - '$(class_name)'はjQueryオブジェクトであり、配列ではありません。 '$(class_name)[0]'は要素か 'undefined'のいずれかで、どちらも' .val() 'メソッドを持っていません。だから、それはうまくいかない。 – gilly3

答えて

2

.val()はスパンではなくフォーム要素用です。スパンに含まれるテキストを取得するには、.text()(またはおそらく.html())を使用します。

var x = $(class_name).text(); 

または、.attr()を使用し、スパン上のカスタム属性を設定するには:

var x = $(class_name).attr("value"); 
... 
$(class_name).attr("value", html); 

または、.data()を使用し、スパンでカスタムデータを関連付ける:

var x = $(class_name).data("value"); 
... 
$(class_name).data("value", html); 
+0

ちょうど.text()でそれをやろうとしましたが、まだ動作しませんでした。間違っている可能性のあることは何ですか? – GeekedOut

+0

実際にはちょうどそれが働いた! 2分で受け入れます。 – GeekedOut

-1

私は見ますあなたのPHPはグローバルなようにPOST値を扱っています。 register_globals設定がoffの場合、明示的に設定しない限り、$ voteと$ problem_idは設定解除されます。ベストプラクティスは、register_globalsをオフのままにして、代わりにsuperglobal $ _POSTを使用することです。

だから、代わりにclass="votes_'.$_POST['problem_id'].' half_text"を試してください。

ここでregister_globalsの上のPHPドキュメントです:

+0

'register_globals'に何か問題があるとどう結論しましたか? OPはPHPコードの一部のみを示し、HTMLの一部を生成しました。私は-1を与える – Tadeck

関連する問題