2010-04-06 1 views
1

cakephp 앱에 통합하고자하는 레거시 스크립트가 있습니다. 스크립트는 $ _POST와 같은 것을 사용합니다. 그리고 나는 꽤 멍청한 사람입니다. 저는 통합을위한 도움이 필요할 것입니다.CakePHP에 레거시 Ajax 스크립트 통합

자바 스크립트 : 스크립트가 보이는 방법은 다음과

이다

  • prototype.js에
  • builder.js (이 두 프로토 타입 FW 출신)
  • lib.js (remote.php에 대한 ajax 요청을 만든다)

PHP

  • remote.php는

    if ($_POST['cmd'] == 'SAVETEAM' && $_POST['info']) 
    { 
        $INFO = json_decode(str_replace('\"', '"', $_POST['info'])); 
    $nr = 1; 
    
    $SORT = array($INFO->GK, $INFO->DEF, $INFO->MID, $INFO->FOR, $INFO->RZ); 
    
    foreach ($SORT as $STD) 
    foreach ($STD as $v) mysql_query("UPDATE players_teams SET fieldposition = ".$nr++." WHERE player_id = {$v->player_id} AND team_id = {$v->team_id}") or die(mysql_error()); 
    
    // CAPTAION 
    mysql_query("UPDATE `teams` SET captain = '{$_POST['captain']}' WHERE `user_id` = {$_POST['userid']}") or die(mysql_error()); 
    

    }

  • transfers.php합니다 (JS에 자바 스크립트 링크를 사용하는 형태를 containts (FastJSON 클래스와 $ _POST VARS 포함))

나는 어떻게 생각하는지 정말 모르겠다. cakephp에서 파일과 호출을 확인하십시오. 현재 $ _POST [ 'cmd']를 사용하고 있기 때문에 현재 "정의되지 않은 색인 : cmd [APP/vendors/remote.php, line 230]"오류가 있습니다. (나는 vendor에 remote.php를 넣었고 JS를 포함 시켰습니다. 패션 방식, 링크 및 소스 코드에 나타납니다). 이 작품을 어떻게 만들 수 있습니까? 죄송 합니다만 AJAX와 Cake에 익숙하지 않습니다 ... 코드 전체를 보려면 여기를 클릭하십시오 : http://octavian.be/thecode.zip

읽어 주셔서 감사합니다.

+0

꽤 놀라운 SQL 문입니다. –

답변

0
  1. 여전히 CakePHP에 PHP가 있는데, $_POST이고 다른 모든 것들은 여전히 ​​사용할 수 있습니다.
  2. 브라우저의 자바 스크립트는 Cake를 전혀 신경 쓰지 않고 그냥 평상시처럼 실행됩니다.
    (서버에서 데이터를 검색하는 경우가 아니라면 Cake를 사용하여 에뮬레이트해야 할 수도 있습니다.)
  3. 레거시 PHP 스크립트는 매우 끔찍합니다.
  4. 무엇을하는지 파악하고 문서화하십시오.
  5. 다양한 단계에서 모든 변수 (var_dump())를보고 스크립트가 추출한 정보의 종류를 확인하십시오.
  6. 오류를 해결하고 수정하십시오.
  7. 데이터베이스 작업을 Cake로 변환합니다.
  8. 당신이 그들과 마주 할 때 더 특정한 질문을하십시오.
+0

문제는 JS에 익숙하지 않다는 것입니다. 스크립트는 내가 몇 년 전에 지불 한 일부 스크립트에 의해 작성되었습니다. 그러나 스크립트는 작동하지만 실패한 구현 일뿐입니다. 어디에서 remote.php를 배치해야합니까? 컨트롤러 내부? 아니면 공급 업체입니까? – octavian

+1

@octavian Javascript는 브라우저와 마찬가지로 정상적인 URL에 접속하려고 시도합니다.Firebug와 같은 것을 사용하여 연결을 볼 수 있습니다. Cake 규칙에 충실하려면 PHP 코드를 컨트롤러에 넣고 해당 컨트롤러를 호출 할 URL을 사용하도록 스크립트를 지정합니다 (스크립트에서 URL을 찾을 수 있어야합니다). Cake의 AJAX 요청에 올바르게 응답하는 방법에 대한 AJAX에 대한 Cake 설명서를 읽으십시오. – deceze