新しいステータスをデータベースに挿入するためのフォームを作成しました。私のシナリオはjQuery AJAX postメソッドを使用してページをリロードする必要がないようにジョブを実行します。その後、メソッドが完了すると、別の2つのAjaxメソッドが呼び出され、アプリケーションのタイムラインがリフレッシュされます(これらの2つのメソッドは、Twitter APIを呼び出してページのタイムラインをリフレッシュするPHPスクリプトを実行します)。 update_statusメソッドは成功しますが、別の2つのメソッドを実行できません。アドバイスの人?私は本当にあなたのフィードバックに感謝します。 - おそらく、NULL値私はupdate_timeline
でresult[i]['user']
が問題を引き起こしていることを想像Jquery AJAXが成功するといくつかのメソッドを実行できないのはなぜですか?
$(document).ready(function(){
$(function() {
$("#update_status_btn").click(function() {
var user_id = $("#update_status #user_id").val();
var status = $("#update_status #status").val();
var dataString = 'user_id='+ user_id + '&status=' + status;
update_status('profile/update_status', dataString);
return false;
});
});
});
function update_status(method_url, dataString)
{
$.ajax({
type: 'POST',
url: method_url,
data: dataString,
cache: false,
success: function() {
//the following methods won't executed :-(
update_timeline('profile/get_user_timeline', '#user_timeline ul');
update_timeline('profile/get_home_timeline', '#home_timeline ul');
}
});
}
function update_timeline(method_url, target)
{
//get home timeline
$.ajax({
type: 'GET',
url: method_url,
dataType: 'json',
cache: false,
success: function(result) {
$(target).empty();
for(i=0;i<result.length;i++){
$(target).append('<li><article><img src="'+ result[i]['user']['profile_image_url'] +'"><a href="">'+ result[i]['user']['screen_name'] + '</a>'+ linkify(result[i]['text']) +'</li></article>');
}
}
});
}
function linkify(data)
{
var param = data.replace(/(^|\s)@(\w+)/g, '[email protected]<a href="http://www.twitter.com/$2" target="_blank">$2</a>');
var param2 = param.replace(/(^|\s)#(\w+)/g, '$1#<a href="http://search.twitter.com/search?q=%23$2" target="_blank">$2</a>');
return param2;
}
'#status'の内容は何ですか? 'URIEncode'ではありません。これは、特定の文字が存在すると問題になる可能性があります。 – lonesomeday
URLが200のステータスを返していますか? ajax呼び出しが呼び出しが成功したと思わない場合、successオプションで定義された関数は呼び出されません。 –
@ scott.korinうーん..私はこのAJAXのものにはかなり新しいです、私はそれをチェックしませんでした。しかし私は自分のデータベースを調べて手動でチェックし、新しい行を挿入するのに成功します。また、私のtwitterのステータスを更新します。私は2つの他のメソッドと一緒に成功コールバック関数で警告を出します。アラートが表示されます。メソッドが成功したことを意味しますか?私のタイムラインがすぐにリフレッシュされないため、メソッドへの他のメソッドは実行されていないようです。一つのことは、 'update_timeline'には何も問題がありません。これまでのところ動作しています(コードラインをスクリプトに60秒ごとに呼び出すようにしています:-) – under5hell