값이 넘어 오질 않네요..ㅠㅠ 채택완료
<script src = "http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function(){
$(document).on("click", "button", function(){
$.ajax({
url: './bbb.php',
type: 'post',
data: { title: "테스트", gubun: "음식점"},
dataType: "json",
success: function(data){
alert("변경되었습니다.");
}, error: function(data){
console.log(data);
}
});
});
});
</script>
<button type="button">버튼</button>
bbb.php
<?php
include_once('./_common.php');
echo "제목".$_POST['title'];
echo "분류".$_POST['gubun'];
?>
제목과 구분 값이 넘어와야하는데 공백이네요.
어제 보안설정한다고 아파치 환경설정을
여러가지 수정했는데 그것때문인지 모르겠네요.
GET, POST는 허용했는데 왜 이러죠?
오후내내 이러고 있네요. 도와주세요.
감사합니다.
답변 5개
Ajax에 대한 이해가 필요할 것 같습니다.
아작스는 내가 필요한 데이터를 보내고 원하는 데이터를 받는 방식입니다.
위는 단순히 포스트 및 ajax로 데이터를 보내는거니
찍히는건 없습니다.
데이터를 볼 수 없죠
아래 처럼 변경해보세요
</p>
<p>bbb.php</p>
<p> </p>
<p><?php</p>
<p> </p>
<p>include_once('./_common.php');</p>
<p> </p>
<p>header('Content-Type: application/json');</p>
<p> </p>
<p>$response = array();</p>
<p> </p>
<p>if ($_SERVER['REQUEST_METHOD'] === 'POST') {</p>
<p> $title = isset($_POST['title']) ? $_POST['title'] : '';</p>
<p> $gubun = isset($_POST['gubun']) ? $_POST['gubun'] : '';</p>
<p> </p>
<p> $response['title'] = $title;</p>
<p> $response['gubun'] = $gubun;</p>
<p> $response['status'] = 'success';</p>
<p>} else {</p>
<p> $response['status'] = 'error';</p>
<p> $response['message'] = '잘못된 요청입니다.';</p>
<p>}</p>
<p> </p>
<p>echo json_encode($response);</p>
<p> </p>
<p>?></p>
<p> </p>
<p>
그리고 스크립트를 수정해주세요
</p>
<p><script></p>
<p>$(document).ready(function(){</p>
<p> $(document).on("click", "button", function(){</p>
<p> $.ajax({</p>
<p> url: './bbb.php',</p>
<p> type: 'post',</p>
<p> data: { title: "테스트", gubun: "음식점" },</p>
<p> dataType: "json",</p>
<p> success: function(data){</p>
<p> if (data.status === 'success') {</p>
<p> alert("제목: " + data.title + "\n분류: " + data.gubun + "\n변경되었습니다.");</p>
<p> } else {</p>
<p> alert("Error: " + data.message);</p>
<p> }</p>
<p> },</p>
<p> error: function(xhr, status, error){</p>
<p> console.log(xhr.responseText);</p>
<p> }</p>
<p> });</p>
<p> });</p>
<p>});</p>
<p></script></p>
<p>
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
ajax 받을 때 받을 데이터 형식을 Json(dataType: "json") 으로 하셔서
데이터를 전달하고 수신받을 파일(bbb.php)의 헤더에
json형식으로 반환한다는 것을 표시(header('Content-Type: application/json');)해주고
전달할 데이터 값도 Json 값으로 변환 함수(json_encode) 이용해서 반환해야 될 것 같아요.
아니면 dataType을 text나, 생략하시면 bbb.php파일은 수정 안해도 될 것 같아요 ㅎㅎ
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
url: './bbb.php', 주소가 문제 있을수도있구요
ajax가 제대로 나오는지 400 에러 나온지 확인해보세요
500 에러면 소스코드 문제이구요
미니님이 알려준 소스코드로 해보세요
답변에 대한 댓글 1개
header('Content-Type: application/json');
상단에 이 줄을 추가해 주니 잘됩니다.
고맙습니다.
댓글을 작성하려면 로그인이 필요합니다.
dataType: "json",
을 삭제하면 됩니다.
POST 로 값은 잘 넘어갔습니다.
bbb.php 에서 리턴하는 데이터 타입이 'JSON' 타입이 아니었기 때문에,
success 가 호출되지 않은 것일 뿐입니다.
dataType 은 서버에서 응답받는 데이터의 타입을 뜻합니다. (bbb.php 에서 리턴하는 데이터의 타입)
※
- https://programmings.tistory.com/12
답변에 대한 댓글 1개
제거하는 방법도 맞는듯 하구요.
상단에 한줄 추가해 주니 잘 나오네요.ㅠ
감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
이 줄이 반드시 포함되어야 하나요?
추가하니 잘 나오네요...감사합니다.
좋은 밤되세요.~