2011-01-23 3 views
0

메신저 기능을 사용하여 메신저를 작성했습니다. 여기 거래가 있는데, 나는 아약스를 통해 PHP로 보내고있다. 내 양식에서 나는 이미지를 업로드하고 새로운 생성 된 inputfield 배열에 URL을 저장하는 다른 형태가 있습니다. 내 문제는 내가 여기필드에서 javascript로 배열을 보내고 다음으로 PHP로

코드

업로드 된 파일 중 어떤 사람이 노력하고 있습니다 아약스/JQuery와에서 PHP는 이러한 새로운 분야를 보내는 방법을 잘 모릅니다 내가 모든 업로드 된 파일에서 새 필드에를 얻을 수 내 기존 양식.

<input name="img[]" type="hidden" value="mynewfile1.jpg"> 
<input name="img[]" type="hidden" value="mynewfile2.jpg"> 
etc... 

임 다음과 같이 다른 형태의 객체를 선언하고하는 것은

var event_title = $('input[name=event_title]'); 
var event_tags = $('input[name=event_tags]'); 

//이 내 배열 메신저도 보내려고 선언이

처럼 내 PHP 파일로 전송 하지만 어떻게?

var event_img = $('input[name=img[]]'); 

이것은 POST 방법을 통해 정기적으로 아약스에 의해 이루어집니다 보내기.

var data = 'event_title=' + event_title.val() etc... 

내 PHP 여기

$event_title = $_POST['event_title']; 
$event_url = $_POST['event_url']; 
etc.. 

메신저 아약스에서 물건을 받고 다음 게시 및 기타 물건을 수행 할 변수를 사용하여.

임 같은 이미지 배열을 점점이

if ($_POST['event_img']) { 

    $array=$_POST['event_img']; 
    foreach ($array as $value) { 

etc... 

내 생각 엔, 나는 배열 필드를 가져 오기 어떻게 자바 스크립트를 선언하고 PHP로 전송하고 처리하는 문제는 아약스에서 전송에 달려 있다는 것입니다 그곳에?

의견을 보내 주셔서 감사합니다.

+0

저는 궁금 해서요, 어떻게 파일을 업로드하고 있습니까? uploadify를 사용하고 있습니까? img []를 사용하여 입력 이름이 jQuery에 어떤 효과가 있는지 확실하지 않습니다. 대괄호없이 'img'를 선택할 수 있습니까? Firebug를 사용하고 있다면 콘솔에 디버깅을 시도하십시오 : console.log (event_img). 또한 $ ('input [name = img []]')는 요소의 배열을 반환하기 때문에이를 통해 반복하여 개별 필드 값을 구할 수 있습니까? –

답변

1

나는 전체 양식을 직렬화하고 당신이 당신의 아약스와 데이터를 보내는 경우 실제로 양식을 제출 한 것처럼, 현재의 모든 형태의 데이터를 사용할 수 있습니다 다음

var data = $('form').serialize(); 

아약스와 함께 보낼 수있는 .serialize()을 사용 .

+0

답변 해 주셔서 감사합니다! PHP에서 변수에 어떻게 도달합니까? 이전과 동일합니까? $ event_title = $ _POST [ 'event_title']; 여기서 event_title은 다음과 같은 필드 이름입니다 - Tobias

+0

정확히 Ajax를 통해 파일을 업로드 할 수 없습니다 . – jondavidjohn

+0

나는 배열을 업로드 한 파일에서 생성되는 img [] 배열 필드를 제외하고 모든 필드를 제 위치에 배치하려고 시도했습니다. 이메일을 보내는 형식으로 업로드하지 않습니다. 업로드가 이미 완료되었으며 업로드 된 파일 URL은 img [] PHP가이 배열에 도달하려고 시도하는 중 im에 저장됩니다. if ($ _POST [ 'img []']) { \t \t $ array = $ _ POST [ 'img []']; \t \t foreach ($ array $ 값) { – Tobias

1

사용 JSON :
JSON.stringify 기능을 통해 JSON로 배열을 인코딩하고, 서버 측에서 나는 json_decode 트릭을 할 것이라 생각합니다.

0

당신은 순서대로 파일이 실제로 수동으로 또는 (양식을 제출하는 데 필요한 $ FILES 배열을 통해 PHP로 사용할 수하는 것을 의미하는 비동기 파일 입력 양식 필드를 통해 파일을 업로드 할 수 AJAX를 사용할 수 없습니다 . 서브 미트() 메서드 사용).

AJAX 요청으로 파일을 업로드해야하는 경우 Uploadify (http://www.uploadify.com/) 등의 도구를 사용해야하거나 적절한 클라이언트 - 서버 스트림 기반 업로드 시스템을 만들어야합니다 (쉬운 작업이 아니어야 함) .

관련 문제