개발! 딱 깔끔하고 센스있게!

PHP 와 자 바스 크 립 트 로 JSON 과 JSON 을 디 코딩 합 니 다. 본문

개발 스크랩 메모/PHP

PHP 와 자 바스 크 립 트 로 JSON 과 JSON 을 디 코딩 합 니 다.

렉사이 2020. 12. 8. 01:53

jquery. ajax () 를 통 해 자 바스 크 립 트 대상 을 PHP 스 크 립 트 에 전달 하려 고 합 니 다.

기본적으로:

var bigArray = new Object(); //Dode //Start loop bigArray[x] = {name: exname, id: exID, order:e, set: setBox, inc: incBox, example: exampleBox, day: i}; 

그래서 기본적으로 하나의 배열 이다.

 var anotherTest = $.toJSON(bigArray); var ajxFile = "routineajax.php"; $.ajax({ type: 'POST', processData: false, url: ajxFile, data: anotherTest, success: function(data) { $('#result').html(data); alert('Load was performed.'); } }); }); 

PHP 단 스 크 립 트

 print_r($_POST); $params = json_decode($_POST); print_r($params) 

Ajax 호출 이 진행 중 입 니 다.

Firebug 에서 볼 수 있 지만 print r ($ POST) 는 빈 배열 로 되 돌아 갑 니 다.

$u 로 변경 하면 $. ajax 함수 와 PHP 스 크 립 트 를 동시에 사용 할 수 있 습 니 다.

나의 주요 문 제 는 다음 과 같은 오 보 를 받 는 것 이다.

경고: json decode () 기대 인자 1 은 문자열, 배열 은

내 가 이 문 제 를 어떻게 해결 해 야 합 니까?


이 코드 세 션 을 PHP 파일 에 추가 하면

 $data = file_get_contents('php://input'); var_dump($data); var_dump(json_decode($data)); 

나 는 이 수출 을 얻 었 다.

string'{"0"{"name":"Decline`Abs","id":"54","order":0,"set":"","inc":"","example":"","day":1}}' (length=87)` object(stdClass)[2] public '0' => object(stdClass)[4] public 'name' => string 'Decline Abs' (length=11) public 'id' => string '54' (length=2) public 'order' => int 0 public 'set' => string '' (length=0) public 'inc' => string '' (length=0) public 'example' => string '' (length=0) public 'day' => int 1 

그래서 적어도 그것 을 통 해서, 나 는 그것 을 어떻게 방문 해 야 할 지 모 르 지만, 정확 한 방향 으로 의 절차!

대답 하 다.

문 제 는 보통 POST 데 이 터 는 key = value & key 2 = value 2 인 코딩 으로 보 내 는데 JSON 으로 보 내 는 것 입 니 다.

원본 post 데 이 터 를 다음 식 으로 접근 하려 고 합 니 다:

$data = file_get_contents('php://input'); var_dump($data); var_dump(json_decode($data)); 

효과 가 있 는 지 없 는 지 를 보다.

없 으 면 질문 에 답 을 붙 여 주세요. 있 으 면.


아래 의 논평 과 OP 에 대한 보충 을 바탕 으로 합 니 다.

$data copy 의 var 덤 프 가 정확 한 붙 여 넣 었 습 니까?내 가 이 문 제 를 묻 는 이 유 는 문자열 {、 0 、 {、 name 이 틀 렸 다 는 것 이다.

올 바른 JSON 이나 올 바른 인 코딩 의 POST 문자열 이 아 닙 니 다.

아마도 복사 와 붙 여 넣 을 때 몇몇 문자 들 을 인 코딩 했 을 것 입 니 다.

어쨌든 너 는 지금 네가 필요 로 하 는 결 과 를 얻 었 다.

stdClass 는 빈 용기 일 뿐 데 이 터 를 넣 을 수 있 습 니 다.

일반적인 대상 문법 으로 접근 할 수 있 습 니 다.

이 경우 $data - > {0} - > name 을 실행 해 야 합 니 다.

0 이 라 고 생각 합 니 다.

$data = json 디 코드 ($data, true) 를 실행 하면 관련 배열 입 니 다.

$data [0] [name] 으로 POST 'ed 데 이 터 를 방문 할 수 있 습 니 다.

이 문 제 를 계속 연구 하 시 려 면 ajax 요청 을 실행 하기 전에 window. console. dir (data) 결 과 를 보 여 주 는 것 이 도움 이 될 수 있 으 며, var dump (data) 에서 복사 및 붙 여 넣 을 페이지 의 원본 을 확인 하 십시오.dir (data) 는 Firebug 창 에 데이터 의 속성 을 표시 합 니 다.

(Firebug 을 사용 하고 계 시 죠?)Chrome 의 디 버 거 에서 도 작 동 할 수 있 고, 다른 디 버 거 도 가능 할 수 있 습 니 다.

내 가 말 한 것 처럼 당신 이 필요 로 하 는 것 을 이미 얻 은 것 같 으 니 조사 할 필요 가 없습니다.

Comments