PHP - обработка перетаскивания структуры навигации - PullRequest
0 голосов
/ 13 октября 2011

Я пытаюсь создать структуру навигации с помощью перетаскивания (используя jquery UI).Я думаю, что я выполнил jquery-сторону, которая находит все «страницы», у которых нет дочерних элементов, и работает в обратном направлении, чтобы создать скобку, и все ветви затем передаются на сервер.для тестирования) я получаю следующий массив после слияния ветвей:

Array
(
    [post-id-2] => Array
        (
            [post-id-5] => 
        )

    [post-id-3] => Array
        (
            [post-id-4] => post-id-1
        )

)

SO Теперь я хочу обновить таблицу навигации, чтобы установить правильный pageid с помощью page_parentid, поэтому я попробовал следующее, но ничего не получилось:

$array = array();
$query_str = '';

foreach( $_POST['branch'] as $branch ) {
    eval('$array = array_merge( $array, ' . $branch . ');');        
}

function recrusive_parent_child( $parent, $array ) {
    $str = $parent;
    if( is_array( $array ) ) {
        foreach( $array as $parent => $branch ) {
            $str .= recrusive_parent_child( $parent, $branch );
        }
    }else{
        return $str;
    }
}

foreach( $array as $parent => $branch ) {
    echo recrusive_parent_child( $parent, $branch );
}

print_r($array);
die();

, но отображается только исходный объединенный массив, ничего из функции.Кто-нибудь может дать мне толчок в правильном направлении?

1 Ответ

0 голосов
/ 13 октября 2011

Вероятно, это потому, что array_merge ничего не делает, но это действительно зависит от ваших входных данных. Давайте возьмем первую итерацию foreach в вашем примере, там строка, которая передается в eval ():

$array = array_merge( $array, Array);

Это потому, что $branch - это массив, а массив, приведенный к строке, равен "Array".

Однако, это должно дать вам синтаксическую ошибку " в eval'd коде ", потому что "массив" является зарезервированным словом и должен следовать "(".

Вы действительно должны избавиться от решения eval () . Опубликуйте желаемый результат, и мы поможем вам найти правильное решение.

...