2012-05-04 5 views
0

양식이있어 사용자가 이미지를 업로드하고 제목을 입력 한 다음 제출하십시오. 그것을 성취하기 위해, 나는 AJAXUPLOADER를 통합했는데, 한 번에 여러 개의 Image Upload를 허용하지 않지만, 하나씩, 나는 그것에 문제가 없다.JS/PHP 배열 병합

성공하면 업로드 된 파일 이름을 반환하며 이미지 파일 이름이 포함 된 숨겨진 필드를 값으로 삽입합니다. 그리고 사용자가 제목을 입력 할 수있는 텍스트 필드를 삽입합니다.

기본적으로, 나는이 코드를 넣을 수 있도록 여러 파일 이름과 제목 배열을하고 싶었 : 그것은 완벽하게 작동

input type="text" name="images[][title]" input type="hidden" value="'+response+'" name="images[][url]" 

을,하지만 문제가있다. 배열 구조는 위의 코드와 빌드 :

[images] => Array 
    (
     [0] => Array 
      (
       [title] => Ferrari 
      ) 

     [1] => Array 
      (
       [url] => d2339e1d8da95e811c4344eaef226d09.jpg 
      ) 

     [2] => Array 
      (
       [title] => Ferrari 
      ) 

     [3] => Array 
      (
       [url] => 714208a8c1b819a548a258c33e311e98.jpg 
      ) 

    ) 

을하지만, 나는 그들이 형식에서 원하는 :

[images] => Array 
    (
     [0] => Array 
      (
       [title] => Ferrari, 
       [url] => d2339e1d8da95e811c4344eaef226d09.jpg 
      ) 

     [1] => Array 
      (
       [title] => Ferrari, 
       [url] => 714208a8c1b819a548a258c33e311e98.jpg 
      ) 

    ) 

모든 빠른 도움이 이해할 수있을 것이다!

답변

0

이름이 titles[] 인 경우 PHP로 결합하십시오.

예 :

<?php 
header("Content-type: text/plain"); //Display only 
$urls = array(
    "http://example.com/", 
    "http://example.com/images/" 
); 
$titles = array(
    "Example", 
    "Example Images" 
); 
$images = array(); 
foreach ($urls as $key => $value) { 
    $images[$key]["url"] = $value; 
    $images[$key]["title"] = $titles[$key]; 
} 

print_r($images); 
+0

예. 그러나 코드에는 몇 가지 수정 사항이 필요하지만 올바른 방법입니다. – mahaidery

+0

이런 식으로하고 싶지는 않았지만 다른 옵션은 보이지 않습니다. – mahaidery

+0

내 코드가 작동합니다 (테스트 해 보았습니다). 입력에 맞게 조정해야 할 수도 있습니다. 하지만 그렇습니다. 어떻게 그것을 성취 할 계획 이었습니까? –

3

귀하의 의견에 인덱스를 선언함으로써, 그 배열이 자동으로 적절하게 당신을 위해, 필요 병합 어떤 화려한 배열을 할 수 없습니다 지어 질 것이다.

<input type="text" name="images[0][title]" /> 
<input type="hidden" value="'+response+'" name="images[0][url]" /> 

<input type="text" name="images[1][title]" /> 
<input type="hidden" value="'+response+'" name="images[1][url]" /> 

이렇게 등등 :) 입력을 선언하기 위해 PHP 루프를 사용하는 경우이 방법은 간단합니다.

<? for($i = 0; $i < 2; $i++) { ?> 
<input type="text" name="images[<?= $i ?>][title]" /> 
<input type="hidden" value="'+response+'" name="images[<?= $i ?>][url]" /> 
< } ?> 

이 정보가 도움이되기를 바랍니다.

+0

아니, 그건 잘못된 접근! – mahaidery

+0

예 : 사용자가 파일 업로드 이미지 [0] [title] 이미지 [0] [url]이 양식에 삽입 된 다음 카운터가 0이 될 때마다 더 업로드합니다. – mahaidery

+0

그 목적은 루프의 ... 각 이미지 세트마다 매번 키가 변경됩니다. 색인의 값을 강제로 지정하면 요청과 함게 전송되는 값에 의존 할 수 있습니다. []를 키로 사용하여 초기 문제에 따라 값을 개별적으로 증가시킵니다. 필자가 제공 한 구현이 문제를 실제로 해결했는지 확인하고 작동하는지 테스트하고 확인했습니다. – Bryan