2012-05-04 5 views
0

사용자가 웹 페이지의 단추를 클릭하면 서버의 파일을 편집하려고합니다. php를 사용하여 버튼 테이블을 생성합니다. STRING1, STRING2 및 BOOL은 함수에 전달하는 변수입니다. 내가 만든 editPlist() 함수가 호출되고 테스트 경고()가 표시됩니다. 문제는 php 파일이 실행된다는 것입니다. 어떤 오류도 발생하지 않습니다. 나는 틀린 것을 알아낼 수 없다.AJAX를 사용하여 PHP 파일 실행 및 매개 변수 보내기

샘플 HTML 버튼 :

<a href="#" onclick="editPlist('STRING1', 'STRING2', 'BOOL')" class="buttong">1 : Round 1</a> 

버튼 클릭이 스크립트 실행 : (. URL이 라인에서 PHP 내가 실행하고자하는 파일의 주소를 생성)를

<script type='text/javascript'> 
function editPlist(stage, dance, oldValue) 
{ 
    alert('test ' + stage + dance + oldValue); 
    $.ajax({ 
     type: "POST", 
     url: <?php echo '"'.dirname(curPageURL()).'/PlistEditorFunction.php"' ?>, 
     data: {"var1" : stage , "var2" : dance , "var3" : oldValue}, 
     success: function(msg){ 
      alert("Data Saved: " + msg); //Anything you want 
     } 
    }); 
} 

외부 PHP 파일 PlistEditorFunction.php에서 가짜 오류를 기록하고 변수를로드하려고 시도하지만 오류가 표시되지 않습니다.

$msg = 'test error message'; 
error_log('['.date("F j, Y, g:i a e O").']'.$msg."<br /> \n", 3, $phperrorPath); 
if (isset($_POST['data']) and trim($_POST['data']) != '') { 
    $stage = trim($_POST['var1']); 
    $dance = trim($_POST['var2']) 
    $oldValue = trim($_POST['var3']); 
} 

나는 도메인 이름이 아약스가에서 실행되는 파일과 일치하는 경우, PHP 스크립트는 실행 것이라는 점을 알고있다 :이 PHP 파일의 시작입니다. 두 파일은 서로 옆에 있으므로 문제가 아님을 알고 있습니다.

이 문제를 해결하려면 어떻게해야합니까?

+2

Chrome 개발자 도구 또는 Firebug로 아약스 요청을보고 계신가요? 귀하는 귀하의 Ajax 요청이 올바르게 전송되고 있는지 확인하고 그런 식으로 전체 응답을 볼 수 있습니다. 크롬을 사용하여 개발자 도구를 열고 네트워크 창으로 이동하십시오. 그런 다음 yor 웹 페이지의 단추를 클릭하고 네트워크 분할 창에서 새 항목을보십시오. – mwotton

+0

감사합니다. 이제 스크립트가 올바르게 작동하고 업데이트됩니다! –

답변

0

에 응답 PARAM 될 것입니다, 나는 아약스가 정의되지 않은 것을 알아 냈다. jQuery가 수입되었으므로 문제가되지 않습니다. 나는 $ .ajax를 jquery.ajax로 변경해야한다는 대답을 발견했다.

일부 호스트는 "$"를 사용하여 jQuery를 나타내지 않습니다. 내 웹 호스트는 대신 "jquery"를 사용합니다.

1

변화

url: 'PlistEditorFunction.php' 

이 라인

url: <?php echo '"'.dirname(curPageURL()).'/PlistEditorFunction.php"' ?> 

하고

0

여러 가지가 이상하게 보일 작동되는지 확인합니다.

전화하시는 URL이 실제로 생각하는 내용인지 확인하십시오. 이를 수행하려면 콘솔/관리자를 사용하십시오. 나는 방화범을 추천한다. 아약스 호출을하면 아약스로 요청한 페이지의 URL이 표시됩니다.

맞으면 URL 매개 변수가 문제가되지 않습니다. 다음으로 PHP 파일 자체를 살펴 보겠습니다. PHP 파일에서 echo 문을 던져보십시오. 그러면 Ajax 응답이 실행되고 있음을 확인할 수 있습니다. 당신이 무엇을 파일 PlistEditorFunction.php에 에코 것은 mwotton의 코멘트 후 성공 기능

success: function(response) { 
    console.log(response); //should be the echo'd statement of PlistEditorFunction.php 
} 
관련 문제