PHP와 Ajax를 사용하여 배열을 Javascript로 전달하는 방법은 무엇입니까?
이 설명이 명확하지 않다면 죄송합니다, 저도 이해하기 어렵습니다.어떻게 하면 PHP와 Ajax를 사용하여 자바스크립트로 배열을 보낼 수 있습니까?Ajax를 사용하여 사진 배열을 가져오는 중입니다. 그러면 빈 사진에 추가하려고 합니다.<div>내 페이지에
jQuery는 다음과 같습니다.
$.ajax({
url: "<?php echo site_url('demo/getPhotos/'); ?>",
type: 'POST',
data: form_data,
success: function(data) {
alert(data);
}
그리고 PHP 함수 getPhotos는 다음과 같습니다.
<?php
$photos = array();
foreach ($data as $photo) {
array_push($photos,$photo['source']);
}
// echo json_encode($photos); How should I be returning $photos?
내가 간단하게echo $photos;데이터가 성공 콜백으로 전송되지만 사용 가능한 형식이 아닌 것 같습니다.
내가 만약에var_dump($photos)PHP에서 결과는 다음과 같습니다.
array(4) {
[0]=>
string(14) "some_image.jpg"
[1]=>
string(14) "some_image.jpg"
[2]=>
string(14) "some_image.jpg"
[3]=>
string(14) "some_image.jpg"
}
저는 다양한 조합을 시도해 보았습니다.json_encode그리고 비슷하지만 정말 추측하고 있지만 그 이면의 이론은 확실하지 않습니다.이러한 맥락에서 PHP에서 Javascript로 데이터를 전달하는 가장 좋은 방법은 무엇입니까?
시도:
$.ajax({
url: "<?php echo site_url('demo/getPhotos/'); ?>",
type: 'POST',
data: form_data,
dataType:"json",
success: function(data) {
alert(data[0]);
}
PHP 쪽에서는 다음과 같이 인쇄할 수 있습니다.
print json_encode($photos);
코드를 더 잘 캡슐화하고 JSON의 장점을 더 잘 보여주기 위해 시도할 수 있는 또 다른 방법은 다음과 같습니다.
print json_encode(array("photolist"=>$photos,"photo_owner"=>"Me!"));
그런 다음 서버에서 다음을 사용하여 액세스할 수 있습니다.
data.photolist[0]; //First photo
data.photo_owner; //The owner of the photo set
나는 배열을 만들었습니다.$resultPHP에서 그리고 요청의 끝에.
echo json_encode($result);
그리고 JS에서.$.post핸들러 함수:
var obj = $.parseJSON(data);
var v = data.k;
어디에k연관 배열의 키 값입니다.
json_encodeJQuery에는 JSON 구문 분석을 위한 기본 제공 기능도 있습니다.예를 들어 사용할 수 있습니다.
$.ajax({
url: "<?php echo site_url('demo/getPhotos/'); ?>",
type: 'POST',
data: form_data,
dataType: 'json', // will automatically convert array to JavaScript
success: function(array) {
alert(array[0]); // alerts first string
}
});
json 자체를 반환한 다음 json 위에 다음과 같이 루프하여 배열을 js 단위로 구성합니다.
var array=[];
for(var key in json)
{
if(json.hasOwnProperty(key))
array.push(json[key]);
}
아니면 단순히 json 자체와 함께 작업할 수 있습니까? 어레이가 필요한 이유가 있습니까?
json[0] 또는 json[1] 등과 같은 것.
이 물건이 필요할 때 json_bullet rulez.
저도 최근에 이 멋진 것을 배웠어요!방법은 다음과 같습니다.
function jsonResponse($array) {
header('Content-type: application/json; charset=utf-8;');
die(json_encode($array));
}
이것은 선택사항입니다. 만약 당신이 그것을 하고 싶다면, 당신은 그럴 필요가 없습니다. 하지만 제 MVC 시스템에서, 저는 이렇게 쓰는 경향이 있습니다.그래서 먼저 스크립트에 Ajax 요청(프로토타입)을 하고, 나중에 이 함수를 jsonResponse라고 부릅니다.
new Ajax.Request('URL',
{
method:'post',
onSuccess: function(transport){
res = transport.responseJSON;
$('actionInformation').update(res.username);
},
onFailure: function(){
alert('Something went wrong...')
}
});
이것은 jscript 코드입니다. res.msg에 주목하세요. 여기가 어레이로 작동할 수 있는 곳입니다.그러나 jsonResponse 기능을 사용하여 PHP로 JSON 형식으로 응답을 전송해야 합니다. 예를 들어, php 기능은 다음과 같이 보일 수 있습니다.
function ajax_get_user() {
$userName = 'Adrian';
$active = 1;
jsonResponse(array('username' => $username, 'active' = $active));
}
나중에 쉽게 할 수 있습니다. res.username, res.active.
이거면 될 것 같아요!
언급URL : https://stackoverflow.com/questions/7263052/how-to-pass-an-array-using-php-ajax-to-javascript
'IT' 카테고리의 다른 글
| SQLite 데이터베이스를 쿼리할 때 커서를 만들어야 하는 이유는 무엇입니까? (0) | 2023.08.21 |
|---|---|
| 시작 및 종료 인덱스가 주어지면 C에서 문자열의 일부를 복사하려면 어떻게 해야 합니까? (0) | 2023.08.21 |
| 두 NSDate 비교 및 시간 성분 무시 (0) | 2023.08.21 |
| Backbone.js를 사용하여 수집 폴링 (0) | 2023.08.21 |
| ASP.NET 윈도우즈 인증 로그아웃 (0) | 2023.08.21 |