2014-01-23 3 views
0

내 index.php에 아래와 같은 업데이트 버튼이 있습니다.자바 스크립트 변수 PHP 스크립트

<form action="update.php" method="post" > 
    <button type="submit">Update</button> 
</form> 

기본 양식 동작을 재정의하는 javascript 기능을 정의했습니다. javascript 함수는 다음과 같습니다.

<script type="text/javascript"> 
$(document).ready(function() { 
$('form').submit(function(e) { 
    e.preventDefault(); 
    alert("HI"); 
    $.ajax({ 
     type: 'post', 
     url: 'update.php', 
     data: { 
      source1: "some text", 
     }, 
     success: function(data) { 
      console.log(data); 
     } 
    }); 
}); 
}); 
</script> 

업데이트 버튼을 클릭하면 알림이 표시됩니다. 그러나 나는 예상대로 update.php 페이지로 리디렉션되지 않습니다. update.php 페이지에서 처리하는 데 사용할 수있는 ajax 요청에서 일부 값을 보내려고합니다.

+1

리디렉션 스크립트가 없기 때문에 리디렉션되지 않습니다. AJAX 호출에서는 PHP 리디렉션을 사용할 수 없습니다. 리디렉션되고 싶다면 왜 AJAX를 사용합니까? – putvande

+1

'update.php'에서 어떻게 데이터에 접근하고 있습니까? 이 질문은 ** 관련 ** 질문과 다른 점이 있습니까? ---> – naththedeveloper

+1

아약스를 사용하여 리디렉션하지 않습니다. 아약스의 핵심입니다. – superphonic

답변

1

PHP 리디렉션이 AJAX 호출로 실행될 때 브라우저에 영향을주지 않기 때문에 리디렉션되지 않습니다. 당신은 자바 스크립트가 success 기능에 재 지정해야합니다 :

$.ajax({ 
    type: 'post', 
    url: 'update.php', 
    data: { 
     source1: "some text", 
    }, 
    success: function(data) { 
     document.location.href = 'update.php' 
    } 
}); 

그러나, 나는 이것이 당신이 원하는 것을 생각하지 않는다. 양식을 제출할 때 새 양식 데이터를 추가하는 것이 좋습니다. 기본 동작을 방지하고 숨겨진 입력 필드가있는 추가 데이터를 추가 한 다음 양식을 다시 제출하는 것이 좋습니다.

+0

성공시 update.php 함수를 호출해야합니다. 지금 ajax에서 update.php를 호출 할 수 있습니다. 그러나 update.php 파일에서 POST를 사용하여 javascript 변수에 액세스하고 있습니다. 내 update.php 파일에 표시되지 않습니다. –

+0

데이터가'$ _POST' 변수에 나타나려면 양식과 함께 게시해야합니다. 따라서 값이 들어있는 숨겨진 입력 필드를 추가하는 예입니다. – MichaelRushton