2013-09-03 2 views
0

이 아약스를 사용하여 문자열 배열을 다른 페이지로 전달합니다.ajax를 사용하여 문자열 배열을 전달하는 방법은 무엇입니까?

이이, 경고 코드가 작동하지 않습니다되어

[ 'Home','A empresa','funcionarios','Quem Somos?','Historia','Inicio',] 

nomes.php의 배열입니다 - 누군가가 도와 드릴까요?

$.ajax({ 
type: 'post', 
url: 'nomes.php', 
beforeSend: function(x) { 
    if(x && x.overrideMimeType) { 
    x.overrideMimeType("application/j-son;charset=UTF-8"); 
    } 
}, 
dataType: "json", 
success: function(data){ 
    v=data; 
    alert(v); 
} 
}); 
+2

이되지 않습니다

var strArray = ['str1', 'str2', 'str3']; $.ajax({ type: 'post', url: 'nomes.php', data: {strarray: strArray}, dataType: "json", success: function(data){ v=data; alert(v); } }); 

당신이 그것을받을하려는 경우, 당신은 PHP 측의 헤더를 설정해야 심지어 모든 데이터를 아약스 요청에 전달합니다. 문자열 배열은 어디에 있습니까? 어쩌면 내가하려는 일을 오해하고있는 것일 수 있습니다. 문자열 배열을 전달하는 대신 * 문자열 배열을 가져 오려고합니까? –

+0

왜 'overrideMimeType'을하고 있습니까? –

+0

표시된 배열이 유효한 JSON이 아닙니다. –

답변

1

당신은 JSON 배열에 PHP 배열을 인코딩 할 필요가있다.

0

stringify를 사용하여 배열을 JSON으로 직렬화 할 수 있습니다. 이것을 Ajax 호출에 추가하십시오 :

data: JSON.stringify(arr); 

arr을 JavaScript 배열로 바꾸십시오. 플러그인이 필요합니다. 더 많은 정보를 원하시면 this answer을보십시오. 배열은 PHP에있는 경우

또는 자바 스크립트가 아니라 당신은 다음과 같이 직접 밖으로 반향 수 있습니다

data: <?php echo json_encode($arr) ?>, 
0

서버에 JSON을 통과하려는 경우, 당신이 좋아하는 그것을 할 수 있습니다 :

header('content-type: application/json'); 
echo json_encode(array('str1', 'str2', 'str3')); 
+0

JSON을 실제로 보내지 않으면 AJAX * 요청 *에 application/j-son (실제로는 application/json)이 필요하지 않습니다. –

+0

나는 그의 코드를 복사했는데, 그 부분조차 보지 못했고, 커피는 아직 차서 걷지 않았다. – OneOfOne

관련 문제