2012-03-16 3 views
0

다음 방법을 사용하여 다중 선택 상자를 표시하고 새 양식에서 올바르게 작동합니다.osCMax의 선택 상자에서 여러 기본값 또는 이전에 선택한 값을 선택하십시오.

echo tep_draw_pull_down_menu("cat[$i][]", $cat_array, '', 'id=cat3, size=5 multiple'); 

편집 폼에서 추가 양식에 삽입 된 값을 기본적으로 선택하고 싶습니다.

기본적으로 선택되는 값은 배열에 저장됩니다. 그래서 배열을 다음과 같은 기본값으로 전달했습니다.

echo tep_draw_pull_down_menu("cat[$i][]", $cat_array, "$arr", 'id=cat3, size=5 multiple'); 

그러나 필수 값을 선택하지 않았습니다. 우리는 배열을 기본값으로 전달할 수 없으므로 한 번에 하나의 값만 선택했습니다.

어떻게하면됩니까?

+0

이 질문에 답변 할 수있는 사람은 누구입니까? – Ahmad

답변

1

코드베이스를 일부 변경하지 않고도 작업을 수행 할 수 없습니다.

기본적으로 tep_draw_pull_down_menu 메서드는 문자열 만 허용하고 확인합니다. 확인해야 할 가치가 하나 이상 넘길 것으로 기대되는 것은 아닙니다.

편집은 에서 발견 된 tep_draw_pull_down_menu 방법 (클린 (312)가 설치 주위)이 라인을보고/기능/html_output.php을 포함한다 : 다음

if ($default == $values[$i]['id']) { 

변경을 :

if ($default == $values[$i]['id'] || (is_array($default) && in_array($values[$i]['id'], $default))) { 

여분의 비트는 $default 변수가 전달되었는지 검사하고, 그렇다면 select 옵션의 현재 값이 거기에 있는지 확인합니다. 두 번 계산에서 모두 예인 경우, 옵션을 선택됨으로 표시하십시오.

여기에 사용에서의 예 :

$cat_array[] = array("id" => 'marvelman', "text" => 'Kimota!'); 
$cat_array[] = array("id" => 'rorschach', "text" => 'hurm'); 
$cat_array[] = array("id" => 'cerebus', "text" => 'Something Fell'); 
$cat_array[] = array("id" => 'wolvie', "text" => 'Snikt!'); 
$cat_array[] = array("id" => 'spider-man', "text" => 'Thwip'); 

$arr = array('rorschach', 'wolvie', 'cerebus'); 

echo tep_draw_pull_down_menu("cat[$i][]", $cat_array, $arr, 'id="cat3" size="5" multiple'); 

명시 적 값의 배열을 반대로 문자열 $arr을 통과하지 않으려면 당신은 또한 따옴표로 $arr 변수를 전달하고 싶지 않을 수도 있습니다.

+0

도움 주셔서 감사합니다. 그것은 내 문제를 해결했다. – Ahmad

관련 문제