2011-12-02 8 views
0

ajaxy가 없으면 어떻게해야합니까? 번거로운 PHP 스크립트를 디버깅해야합니다. 클릭 할 때 다음을 수행하는 이미지가 없습니다.jquery는 ajax없이 php로 데이터를 전송합니다.

$.post("php/navTabs.php", { action: "deleteTab", theHTM: thehtm }, function(jdata) { 
    alert("The tab was " + jdata.is_deleted); 
}, "json"); 

다시 한 번 감사드립니다, 토드

+0

cURL을 사용하여 명령 줄에서 게시 할 수 있습니다. –

답변

-1

짧은 대답 : 당신은 자바 스크립트를 사용할 수 없습니다.

긴 대답 :

1) 형태의 이미지 부분을 확인하고 버튼을 클릭에 숨겨진 입력을 제출 : 당신이 AJAX를 사용하지 않도록하려면

, 당신은 두 가지 옵션이 있습니다.

<form method="form.php" action="post"> 
     <input type="hidden" name="action" value="delete"/> 
     ...rest of form... 
    </form> 

2) 이미지를 URL에 고정 된 입력으로 연결하십시오. 좋아요 :

form.php?action=delete 

왜 AJAX를 사용하지 않으려하십니까?

+0

물론 할 수 있다면 직접 스크립트에 액세스하십시오. PHP 파일이 존재합니까? AJAX는 파싱 된 내용을 어디서나 마술하지 않습니다. –

+0

음, 그래,하지만 AJAX를 사용하지 않고 jQuery/Javascript를 사용하여 PHP 파일로 데이터를 보낼 수는 없다. 이미지를 링크로 만들고 답변이 말하는 것처럼 URL에 따라 데이터를 보내거나 폼으로 변경할 수 있지만 AJAX를 사용하지 않고 jQuery/Javascript를 통해 데이터를 보낼 수는 없습니다. 나는 알고있다. – Jemaclus

+0

결국 아약스를 우회하고 싶지는 않지만, 올바르게 작동하지 않는 PHP 스크립트가 있고, WTF를보기 위해 일부 var_dumps 및 에코 (echos)를 넣어야합니다. – maddogandnoriko

2

나는 $ _GET에/navTabs.php은 PHP에서 $ _POST 변수를 변경하고 직접

php/navTabs.php?name=value&name2=value2 etc 

이 방법을 사용하면 돈처럼 스크립트에 액세스 할 너의 방식대로 아약스가 없어.

1

는 사용자에게 투명하게 발생하고 콜백 함수 수 있도록 당신이 $.post() 매우 유사한 흐름을 사용 할 수 있습니다이 방법이 숨겨진 입력이 양식을 사용

<img /> 
<iframe id="workFrame" style="display: none"></iframe> 
<form action="php/navTabs.php" target="workFrame" method="post" style="display: none"> 
<input type=hidden id="hidden-1"> 
<input type=hidden id="hidden-2"> 
</form> 

<script> 
$('#hidden-1').val('some value to send to the server'); 
$('#hidden-2').val('some OTHER value to send to the server'); 
$('img').on('click', function() { 
    $('form').trigger('submit'); 
}); 
</script> 

을 (그래서이 투명하게 될 수 있습니다 사용자에게). JavaScript를 사용하여 숨겨진 입력 값을 설정 한 다음 프로그래밍 방식으로 숨겨진 iframe에 양식을 제출할 수 있습니다. 모두 당신이 원하는 경우

$('#workFrame').on('load', function() { 
    var response = $(this).contents().filter('body'); 
    //if you output JSON in your PHP script you could parse this as JSON and do work 
}); 

UPDATE :

이 방법의 또 다른 특징은 iframe을위한 load 이벤트에 결합하여 단지 $.post()처럼 콜백 함수를 가질 수 있다는 것입니다 do는 PHP 스크립트의 출력을보고 개발자 도구 (FireBug 등)를 사용하여 응답을 볼 수 있습니다. AJAX 콜백에서 응답을 기록 할 수도 있습니다.

$.post("php/navTabs.php", { action: "deleteTab", theHTM: thehtm }, function(jdata) { 
    alert("The tab was " + jdata.is_deleted); 
    console.log(jdata); 
}, "json"); 

현재 일부 Dev. 콘솔이있는 도구를 사용하면 코드를 디버깅 할 때 놀라는 정도의 시간을 절약 할 수 있습니다. FireBug을 체크 아웃하는 것이 좋습니다.

관련 문제