2011-09-19 1 views
1

인터넷 및 jqGrid 문서를 검색했지만 CRUD (create, update, delete) 작업에 대한 JSON 응답 형식에 대해서는 아무 것도 찾을 수 없습니다. 분명히 PHP에서 jqGrid로 반환 된 JSON 메시지가 있어야 CRUD 작업이 성공했는지 여부를 알 수 있습니까? 이 메시지의 형식은 무엇이며 jqGrid가 해당 메시지에 응답하도록 자바 스크립트를 어떻게 코딩하겠습니까? 나는 아주 좋은 프로그래머가 아니므로 완전한 코드 응답이 크게 감사 할 것입니다.어떻게 PHP에서 jqGrid JSON 오류 응답을 작성한 다음 jqGrid javascript로 응답합니까?

감사합니다.

답변

1

생성, 삭제 및 업데이트에 대한 응답을 사용할 필요가 없습니다.

예. 생성 작업을 수행하는 경우 데이터를 데이터베이스에 추가하는 "ajax 작업"이 호출됩니다.

지금이 possibilites있다 : 빈 문자열을 의미

  1. 가 작동 그냥 아무것도 돌려주지 않는
    • 를 성공적으로 만들기
    • (한 200 응답이있는 jqGrid에 의해 수신 될 때, 모든 것이 괜찮습니다)
  2. 만들기 작업은
    • 강행 실패 t은 수정 된 응답 헤더

있는 jqGrid가 당신에게 오류 자체를 보여주는 비 200 응답 코드를 수신하는 경우 로 예외를 던져!

try { 
    // insert something in your db 
    // ok = true means everything fine 
    // ok = false means something unpredictable happened 
    if (!$ok) { 
     throw new Exception('error'); 
    } 

} catch (Exception $e) { 

    header("Status: 500 Server Error caused by dbinsert jqgrid"); 
    var_dump($e->getMessage()); 
} 

코드 미안하지만 내가 지금 내 머리 나가 빠른 :) 내가 젠드 프레임 워크와 함께있는 jqGrid를 사용했고 ZF는 (기본적으로 예외 적어도 500 개 응답 코드를 사용하여 내 템플릿)

성공적인 업데이트/삭제/생성 후에 전체 jqGrid 데이터를 다시 가져와야합니다.

jQuery("#your_jqgrid_id").jqGrid().trigger('reloadGrid'); 

다른 메커니즘이 없습니다. (약 6 개월 전, 어쩌면 변경된 것)

오류/성공 처리를 구현하려면 원하는 형식으로 메시지를 정의하고 Ajax 성공 함수 콜백에서 처리하십시오.

더 많은 코드가 필요하고 긴급하지 않다면 내게 의견을 남겨주세요.

추가 조언 하나 : jqGrid를 즉시 이해할 것으로 기대하지 마십시오. 시간을내어 몇 가지 시도해보고 놀아보십시오. 당신이 그것에 익숙해지기까지는 약간의 시간이 걸릴 것입니다.

+0

감사합니다. 인라인 및 양식 편집이 일관되게 작동하지 않지만 꽤 짜증납니다. 인라인 편집은 php가 반환 한 적절한 오류 메시지를 표시하지만 양식 편집은 다른 메시지를 표시합니다. 아직도 이것을 파악하고 자바 스크립트 측면에서 놀아야합니다. 또한 숫자 필드에 문자열을 입력 할 때 때때로 mysql이 실패하는 문제가 발생합니다. 때로는 숫자 필드에 0을 넣습니다. – Superdooperhero

+0

이 문제가됩니다.삽입 된 데이터가 mysql 테이블과 일치하는지 몇 가지 검사를해야한다. 그러나 이것은 아약스 호출에서 할 수 있습니다. 예 : 필드에 숫자 만 넣고 숫자인지 확인하십시오. 내 대답이 너를 만족 시키면 받아 들여라. 스택 오버플로에 대한 대답을 여기에 입력하지 않으면 질문에 대한 답변이 거의 없습니다. (이것은 당신의 입학 금리입니다) – evildead