AJAX 콜에서 어레이를 반환하는 방법
jQuery를 사용하여 AJAX 호출을 하고 PHP 파일을 통해 어레이를 반환하고 클라이언트 측에서 Javascript 어레이로 제공하는 더 나은 솔루션을 찾고 있습니다.저는 이렇게 하고 있습니다.
PHP 파일(예.php):
<?php
$id_numbers = array('NES-ZL','NES-AL','SNS-ZL');
for ($i=0; $i<count($the_array); $i++){
echo $id_numbers[$i];
echo '|';
}
?>
JS 파일:
id_numbers = new Array();
$.ajax({
url:"Example.php",
type:"POST",
success:function(msg){
id_numbers = msg.split('|');
}
});
현재의 방법은 내 취향에 좀 복잡할 뿐이다.
제가 하고 싶은 건 그냥...
return $id_numbers;
AJAX 호출 후 Javascript 배열로 직접 변환합니다.
생각나는 사람?
JSON을 사용하여 클라이언트와 서버 간에 데이터 유형(어레이 및 개체)을 전송합니다.
PHP의 경우:
JavaScript의 경우:
PHP:
echo json_encode($id_numbers);
JavaScript:
id_numbers = JSON.parse(msg);
Wolfgang이 언급한 것처럼 jQuery에 네 번째 파라미터를 지정하여 JSON을 자동으로 디코딩할 수 있습니다.
id_numbers = new Array();
$.ajax({
url:"Example.php",
type:"POST",
success:function(msg){
id_numbers = msg;
},
dataType:"json"
});
PHP의 json_encode()를 확인합니다.dataType: "json" 매개 변수를 사용하여 $.ajax를 얻을 수 있습니다.
@Xeon06은 좋지만 이 글을 읽고 나처럼 도전해본 분들에게는 참고 자료로...php =에서 어레이를 반환할 때>json_encode($theArray)특히 저 같은 소프트 js 사용자에게는 조작하기 어려운 문자열로 변환됩니다.
js 내부에서는 JSON.parse를 사용하여 어레이 값 및/또는 키를 얻으려고 합니다.var jsArray = JSON.parse(data)여기서 data는 php에서 어레이를 반환합니다.json 인코딩된 문자열은 이제 쉽게 조작할 수 있는 js 개체로 변환됩니다.
예: foo={one:1, 2:2, 3:3} - JSON.parse 이후 취득
for (key in foo){ console.log("foo["+ key +"]="+ foo[key]) }- firebug 콘솔에 출력합니다.야아아아악!
봐주세요json_encode( http://php.net/manual/en/function.json-encode.php) )를 참조해 주세요.PHP 5.2부터 이용 가능합니다.매개 변수 사용dataType: 'json'파싱해 달라고 부탁했어요그러면 성공 시 첫 번째 인수로 Object를 갖게 됩니다.자세한 내용은 jQuery 문서를 참조하십시오.http://api.jquery.com/jQuery.ajax/
Php에는 이 기능을 위한 슈퍼섹시 기능이 있습니다.배열을 전달해 주세요.
$json = json_encode($var);
$.ajax({
url:"Example.php",
type:"POST",
dataType : "json",
success:function(msg){
console.info(msg);
}
});
시뮬레이션 :)
음, 제가 좀 늦은 건 알지만, 저는 당신의 모든 해결책을 시도해봤지만 성공하지 못했어요!그래서 제가 어떻게 해냈는지 알려드릴게요.우선, 저는 ASP를 만들고 있습니다.넷 MVC 프로젝트변경된 것은 c# 방식뿐입니다.getInvitation:
public ActionResult getInvitation (Guid s_ID)
{
using (var db = new cRM_Verband_BWEntities())
{
var listSidsMit = (from data in db.TERMINEINLADUNGEN where data.RECID_KOMMUNIKATIONEN == s_ID select data.RECID_MITARBEITER.ToString()).ToArray();
return Json(listSidsMit);
}
}
JS에서의 성공 기능:
function successFunction(result) {
console.log(result);
}
메서드 유형을 에서 변경했습니다.string[]로로 합니다.ActionResult 내 .listSidsMit쫑알송알송알송알송알송알송알송알송알송알송알송알송알송알.
언급URL : https://stackoverflow.com/questions/8823925/how-to-return-an-array-from-an-ajax-call
'programing' 카테고리의 다른 글
| AngularJ: ng-click과 조합하여 동작하지 않는 경우? (0) | 2023.03.12 |
|---|---|
| Oracle에서 예약어를 피하려면 어떻게 해야 합니까? (0) | 2023.03.12 |
| jQuery AJAX "401 (무허가)"를 사용한ASP.NET 호출 WebMethod (0) | 2023.03.12 |
| Gulp AssertionError [ERR_ASSERTION]: 작업 함수를 지정해야 합니다. (0) | 2023.03.12 |
| 리액트 베스트 프랙티스의 에러 처리 (0) | 2023.03.12 |