PHP에서 JavaScript 배열을 조작하고 싶습니다. 이런 식으로 할 수 있습니까?
$.ajax({
type: "POST",
url: "tourFinderFunctions.php",
data: "activitiesArray="+activities,
success: function() {
$("#lengthQuestion").fadeOut('slow');
}
});
활동은 다음과 같은 1 차원 배열입니다.
var activities = ['Location Zero', 'Location One', 'Location Two'];
이 작업을 시도해도 스크립트가 완료되지 않습니다. 어떻게 해결할 수 있습니까?
답변
data: { activitiesArray: activities },
그게 다야! 이제 PHP에서 액세스 할 수 있습니다.
<?php $myArray = $_REQUEST['activitiesArray']; ?>
답변
답변
이것을 문자열로 바꿔야합니다. JSON2 라이브러리의 stringify 메서드를 사용하여이를 수행 할 수 있습니다.
코드는 다음과 같습니다.
var myJSONText = JSON.stringify(myObject);
그래서
['Location Zero', 'Location One', 'Location Two'];
될 것입니다:
"['Location Zero', 'Location One', 'Location Two']"
서버에서이를 처리하는 방법에 대해서는 PHP 전문가에게 문의해야합니다. 나는 여기에 다른 답변이 해결책이라고 생각합니다.
유사한 방식으로 서버에서 데이터를 반환 할 수 있습니다. 즉, 다시 개체로 바꿀 수 있습니다.
var myObject = JSON.parse(myJSONString);
답변
나는 이것에 대답하기에는 너무 늦을 수도 있다는 것을 알고 있지만 이것은 나를 위해 좋은 방법으로 일했습니다.
-
자바 스크립트 객체 (json)를 다음과 같이 문자열 화합니다.
var st = JSON.stringify(your_object);
-
POST 데이터를 “문자열”로 전달합니다 (jQuery를 사용할 수 있음).
$.post('foo.php',{data:st},function(data){... });
- 서버 측 처리에서 데이터를 디코딩합니다.
$data = json_decode($_POST['data']);
그게 다야 … 데이터를 자유롭게 사용할 수 있습니다.
다차원 배열과 단일 배열은 일반 배열로 처리됩니다. 그들에 접근하려면 그냥 정상적인 $foo[4]
.
연관 배열 (javsacript 객체)은 php 객체 (클래스)로 처리됩니다. 그것들에 접근하려면 수업처럼하세요 : $foo->bar
.
답변
나는 다음과 같아야한다 :
$.post(submitAddress, { 'yourArrayName' : javaScriptArrayToSubmitToServer },
function(response, status, xhr) {
alert("POST returned: \n" + response + "\n\n");
})
답변
JQuery 직렬화 기능 사용
http://docs.jquery.com/Ajax/serialize
직렬화는 일반적으로 서버에 게시 할 사용자 입력 데이터를 준비하는 데 사용됩니다. 직렬화 된 데이터는 거의 모든 서버 측 프로그래밍 언어 및 프레임 워크 와 호환되는 표준 형식입니다 .
답변
이것은 나를 위해 일했습니다.
$.ajax({
url:"../messaging/delete.php",
type:"POST",
data:{messages:selected},
success:function(data){
if(data === "done"){
}
info($("#notification"), data);
},
beforeSend:function(){
info($("#notification"),"Deleting "+count+" messages");
},
error:function(jqXHR, textStatus, errorMessage){
error($("#notification"),errorMessage);
}
});
그리고 이것은 당신의 PHP를 위해 :
$messages = $_POST['messages']
foreach($messages as $msg){
echo $msg;
}