2010-11-25 7 views
0

내가 원하는 건 PHP 스크립트 1에서 .post 자바 스크립트 jquery lib 코드가 있습니다. 나는 PHP 스크립트 1이 PHP 스크립트 2에 양식 제출을 보내고 그 값을 가져 와서 데이터베이스를 업데이트하길 원합니다. 그런 다음 PHP 스크립트 2로 PHP 스크립트 1에 변수를 보내서 업데이트가 성공했는지 여부를 알려줍니다.PHP 파일에서 jquery .post를 사용하여 변수를 다시 전달하는 방법은 무엇입니까?

(PHP 스크립트) 1 나는 success라는 변수를 먼저 할당합니다. 그런 다음. post 코드를 실행하고 success 변수에 1을 할당 할 것으로 예상하십시오.

PHP 스크립트에서 1 .post 이후 나는 성공 사례가 1 인 경우 전환이 2 번 발생하고 "데이터베이스가 정상적으로 업데이트되었습니다"라는 문자열이 있습니다. 그런 다음 성공이 0 인 또 다른 경우 문자열에 "시도가 실패했습니다. 죄송합니다. 다시 시도하십시오."라는 또 다른 사례가 있습니다.

이러한 문자열은 db_status라는 변수에 할당됩니다.

그래서 div에 db_status를 추가합니다. 그러면 해당 문자열 메시지가 표시됩니다.

나는 .post를 사용할 수 있고 .post 콜백의 PHP 파일에서 HTML 코드를 얻을 수 있음을 알고있다.

나는 자바 스크립트 나 PHP 변수를 어떻게 되돌릴 수 있는지 알고 싶다.

답변

1

PHP에서는 변수를 echo합니다. echo $ testVariable; $ testVariable 값은 10입니다. jquery에서이 작업을 수행하십시오.

$.ajax 
         ({ 
         type: "POST", 
         url: "order.php", 
         dataType: "json", 
         data: postData, 
         cache: false, 
         success: function(testVariable) 
          { 
           alert("Order Saved"); 
           $('#assigned_id').html(testVariable); 
          } 
         }); 

assigned_id의 값은 10입니다.

-1

말했듯이 jQuery.post (...)의 결과를 표시하는 방법은 빌드 콜백을 사용하는 것입니다. 이렇게하면 항상 "PHP 변수를 되돌릴 수 있습니다". PHP는 변수를 직접 반환 할 수 없으며, 완성 된 페이지로 렌더링되어야하거나 JSON 구조, XML 문서 또는 사용자의 필요에 맞는 다른 형식의 응답 유형을 선택해야합니다.

$.ajax({ 
    type: "GET", 
    url: "myphp1.php", 
    dataType: "script" 
}); 

그러나 당신은 또한 dataType와 "HTML"을 사용할 수 있습니다 : 당신이 다음 자바 스크립트 블록을 반환하려는 경우

난 당신이 뭔가를 할 수 있다고 생각

의 jQuery 문서 :

html이 지정되면 검색된 데이터의 에 포함 된 모든 JavaScript가 사전에 실행됩니다. HTML은 이 문자열로 반환됩니다. 마찬가지로 스크립트는 을 서버에서 다시 가져오고 다음 스크립트 자체를 텍스트 데이터로 반환합니다.

1

당신이해야 할 일은 PHP 스크립트 1이 아약스를 통해 게시물 데이터를 보내는 방법을 찾는 것입니다.

는 PHP 스크립트 2에 그런
<?php 
    $variable = 0; 
?> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $('#input').ready(function(){ 
     $.post("phpscript2.php", {db_code: ""+ $(this).val() +""}, function(data){ 
          if(parseInt(data) == 1){ 
           $('.message').html('Database updated in good terms'); 
          } else { 
           $('.message').html('Sorry the attempt was a fail.'); 
          } 
     }); 
    }); 
});   
</script> 

<input type="hidden" value="<?php echo $variable; ?> 
<div class="message">Please wait while we process</div> 

는, 당신은 것입니다 : 당신은 일을하여이 작업을 수행 할 수 있습니다 그것을로드 할 때

<?php 
    $variable = $_POST['db_code']; 

    // Do some code with the posted data that is valued to 0... 
    $new_variable = 1; 


    echo $new_variable; 
?> 

이 PHP를로드하기 전에 JQuery와 너무 숨겨진 필드가있을 것이다 (숨겨진 입력 필드를 제출할 것 hte PHP 변수의 값). 숨겨진 필드 POST 값을 $ POST를 사용하여 원하는대로 보내고 PHP 스크립트 2에 PHP 스크립트 1의 변수 값을 보냅니다. 그러면 게시 된 데이터를 처리합니다. 그것을하고 싶다. 그런 다음 새 변수 값을 에코 아웃하거나 심지어는 1을 반향 할 수 있습니다. 그런 다음 에코가 아약스로 돌아가고 거기에 제공된 데이터를 구문 분석합니다. 이것은 1이지만 에코하여 문자열이되었으므로 구문 분석해야합니다. 정수로, if else if 문을 사용하여 확인하십시오. 그렇지 않으면 1을 수행하고 그렇지 않으면 성공 또는 실패 메시지로 메시지 분류 된 div를 설정하십시오. 가장 좋은 점은 브라우저가로드되어 클라이언트가 값을 편집 할 시간이 없으면 바로 값 게시를 전송할 때 숨겨진 입력을 편집 할 수 없다는 것입니다.

어쨌든 이론입니다. 이것은 테스트를 거치지 않았고, 여전히 아약스 씬에서 꽤 새로운 것입니다.

희망이 있습니다.

관련 문제