2012-09-05 3 views
1

그래서 이것은 이상한 질문의 일종이며 다른 방법이라고 생각할 수도 있지만 여기에 있습니다.트리거 AJAX에서 PHP

저는 Laravel이라는 프레임 워크를 사용합니다. 그것이 어떤 차이를 만들지는 않지만 그것이 언급 할 만하다고 생각했습니다. 이 프레임 워크에서 나는 앨범에서 사진을 평가할 수있는 웹 응용 프로그램을 가지고 있습니다.

업로드중인 사진이 안드로이드 응용 프로그램에서 제공됩니다. 사진은 base64로 변환 한 전화로 만들어 웹 응용 프로그램으로 보냅니다. 전송 한 입력을 웹 응용 프로그램의 컨트롤러 동작에 의해 수신 중입니다.

위의 작업을 수행하십시오! 하지만 이제 컨트롤러 동작이 시작될 때 PHP에서 어떤 종류의 이벤트를 트리거하려고합니다. 따라서 사진을 업로드 할 때 웹 응용 프로그램을 사용하는 사용자는 앨범에 새 그림이 추가 된 것을 확인합니다.

누구나 나를 올바른 방향으로 안내 할 수 있습니까?

미리 감사드립니다.

+0

내가 가장 좋은 건 비동기 이미지를 업로드에보고 다음에 페이지를 업데이트하는 콜백 함수를 실행할 수있을 것 같아요 성공. – Erik

+0

하지만 Android asynctask에 URL이 필요할 때 어떻게 비동기 이미지를 업로드합니까? 나는 이것이 응용 프로그램 측면에서 가능하다고 믿지 않으므로 웹 응용 프로그램 측면에서 처리해야합니다. 웹 응용 프로그램의 유일한 트리거는 Phone에서 전송되는 base64 문자열을 처리하는 컨트롤러 기능입니다. –

답변

0

글쎄,이 웹 사이트에서 영감을 얻어 웹 앱 상단에 바를 게시하여 사용자에게 변경 사실을 알릴 수 있습니다.

또는 다시 켜고 변경 횟수를 나타내는 다시로드 버튼을 만드십시오. 사용자가 해당 버튼을 클릭하면 갤러리를 다시로드 할 수 있습니다.

0

폴러를 설정하여 X 초마다 새 이미지를 확인하십시오. 그리고 새 이미지가 있으면 그것을 표시하십시오.

새 응답에 대해 stackoverflow가 작동하는 방식입니다. Firebug에서 콘솔 탭을 검사하면 30 초마다 (ish) 폴링을 볼 수 있습니다.

예 (jQuery를 사용하여) :

setInterval(function() { 
    $.getJSON('/check-for-images', function(data) { 
     if (data instanceof Array) { 
      $.each(data, function(i, image) { 
       $('<img/>').attr('src', image).appendTo('#container'); 
      } 
     } 
    }); 
}, 30000); 

은 PHP가 :

$result = query('SELECT name FROM images WHERE date > :lastUpdated', $lastUpdated); 
echo json_encode(fetchArray($results)); 
+0

고마워, 나는 이미이 해결책을 알고 있었다. 그러나 나는 그것이 꽤 하나라고 생각하지 않는다. 내가 좋아하는 솔루션은 websockets이지만, nodejs 서버가 필요합니다. 그리고 저는 PHP가있는 아파치 서버 만 가지고 있습니다. –

+0

래칫은 PHP 용 웹 소켓 라이브러리입니다. 웹 소켓과 응용 프로그램을 사용하는 전화기와의 호환성을 확인하십시오. – Mike

+1

@ 잭 나는 이것을 사용하지 않는 방법을 보지 못합니다 *** 표준 *** 접근법은 받아 들일 수 없습니다. 그것에 대해 "예쁘지"않은 것은 무엇입니까? – Petah