나는 AJAX를 광범위하게 사용하고 PHP 기반 알림 시스템으로는 충분하지 않았습니다. jQuery 알림, 처음 표시되지 않음
<script>
function user_notify($string, $class){
if($class == null){
$class = 'error';
}
$('<div class="' + $class + '"><div class="notification-text">' + $string + '</div></div>').hide().appendTo('#system-notifications').fadeIn('slow');
}
function DeleteTask(SpanName, TaskId){
if (confirm("Are you sure you want to delete this task?")) {
var curDateTime = new Date(); //For IE
var status = document.getElementById('status');
var poststr = "uniqueID=" + curDateTime.getTime() ;
var SpanName = SpanName;
if(SpanName == 'project_todos_complete'){
var showCompleted = 1;
} else {
var showCompleted = 0;
}
//alert (SpanName);
makePOSTRequest('http://*****webdesigns.com/project_manager/include/ajax/global.php?action=delete_task&showCompleted=' + showCompleted + '&id=' + TaskId, poststr, SpanName);
}
if(ajax_status == 4){
user_notify('Task deleted.', 'success');
ajax_status = null;
}
}
</script>
내가 readyState가를 보유하고 글로벌 자바 스크립트 변수가 :
나는이 기능을 가지고있다. 4가 서버로부터의 응답이라면, 우리는 AJAX가 성공했다고 가정 할 수 있습니다 (나는 cgi/php가 존재한다면 반드시 실행하지는 않습니다). 그래서 나는 이것을 저장하고 AJAX 포스트를 호출 한 함수 내에서 readyState가 4라면 user_notify 함수를 호출한다.
알림을 트리거해야하는 첫 번째 작업은 예외입니다. 모든 연속 작업은 성공적으로 메시지를 생성합니다. 작동하지 않는 특정 동작이 아니라 첫 번째 동작입니다.
HTML :
<body>
<div id="system-notifications"></div>
<div class="wrapper">...</div>
내가 무슨 말이냐?
UPDATE :
나는/아약스 jQuery를/아약스 호출 자바 스크립트 유산을 이동하는 과정에서입니다. 모든 것은 하나의면을 제외하고는 작동합니다. 대상 div는 .ajax jQuery 호출의 반환 데이터로 '새로 고침'되지 않습니다. 알림 (첫 번째 및 모든 연속 된 시간) 팝업, PHP는 실행 (페이지 새로 고침이 이것을 verfies),하지만 div는 PHP 스크립트가 생성하는 HTML로 업데이 트되지 않습니다.
$('form#addToDoForm').submit(function(){
var project_id = $('#addToDoForm input[name=project_id]');
var assigned_id = $('#addToDoForm input[name=assigned_user_id]');
var description = $('#addToDoForm textarea[name=description]');
var responsible_id = $('#addToDoForm input[name=responsible_user_id :selected]');
alert(responsible_id.val());
return false;
var due = $('#addToDoForm input[name=due]');
var result_div = 'project_todos_' + project_id;
var query_string = 'action=add_to_do&id=' + project_id;
var ajax_url = 'http://avwebdesigns.com/basecamp/include/ajax/global.php?' + query_string;
var successMessage = '<b>' + description.val() + '</b> added.';
var data =
'project_id=' + project_id.val() +
'&assigned_user_id=' + assigned_id.val() +
'&responsible_user_id=' + responsible_id.val() +
'&description=' + encodeURIComponent(description.val()) +
'&due=' + encodeURIComponent(due.val()); // encodeURIComponent()
$.ajax({
type: 'POST',
url: ajax_url,
data: data,
cache: false,
success: function(data){
$('#'+result_div).html(data); // $('#'+result_div).html(data.returnValue);
user_notify(successMessage, 'success');
},
error:function(data){
$('#'+result_div).html(data);
user_notify(failureMessage, 'error');
}
});
return false;
});
아이디어가 있으십니까?
전 세계 변수가 이전 호출에서 남은 곳과 같다고 생각했습니다. 그러나 내가 확인한 후 행동을 취한 후에 무효 화한다는 것을 알게 될 것입니다. callbakc 함수는 솔루션처럼 들립니다. – AVProgrammer