Динамически добавлять ввод на основе информации базы данных - PullRequest
0 голосов
/ 13 сентября 2018

У меня возникли проблемы при работе с динамическими полями ввода.Моя проблема: у меня есть форма, которая создает входные данные для каждого языка в базе данных.Каждый из этих языков создает входной идентификатор / имя, например text[lang_name] (например, lang[en], lang[fr], lang[pt] и т. Д.), Чтобы я мог позже прочитать его с помощью PHP в виде массива.

Теперь настоящая проблема.Мне нужно динамически вставить новый вход на основе каждого языка, присутствующего в базе данных.Итак, если у меня есть 3 языка в базе данных, кнопка должна создать мне 3 входа, по одному для каждого языка, с одинаковой логикой text[lang_name].

Обратите внимание, что мне нужны бесконечные уровни динамических кнопок.Мне может понадобиться добавить 1 ввод для каждого языка или 10 для каждого языка.

Как мне этого добиться?После нескольких часов поиска я не могу найти никакого решения, и мне нужна эта опция, чтобы создать многоязычную систему, в которой мне нужно несколько полей для одного и того же id.

Это код, который у меня есть, который создает всевходные данные на странице:

function AddLocalTextLanguages($mysqli, $tabindex){
$query = "SELECT * FROM language";
#Prepare stmt or reports errors
($stmt = $mysqli->prepare($query)) or trigger_error($mysqli->error, E_USER_ERROR);
#Execute stmt or reports errors
$stmt->execute() or trigger_error($stmt->error, E_USER_ERROR);
#Save data or reports errors
($stmt_result = $stmt->get_result()) or trigger_error($stmt->error, E_USER_ERROR);
#Check if are rows in query
if ($stmt_result->num_rows>0) {
    # Save in $row_data[] all columns of query
    if($tabindex == 1){
        $tab = 0;
        echo '<ul class="nav nav-tabs nav-tabs-block" data-toggle="tabs" role="tablist">';
        while($row_data = $stmt_result->fetch_assoc()) {
            echo '<li class="nav-item">';
                if($tab == 0){
                    echo '<a class="nav-link active" href="#btabs-animated-fade-'.$row_data['code'].'">'.$row_data['language'].'</a>';
                }else{
                    echo '<a class="nav-link" href="#btabs-animated-fade-'.$row_data['code'].'">'.$row_data['language'].'</a>';
                }   
            echo '</li>';
        $tab = 1;
        }
        echo '</ul>';
        AddLocalTextLanguages($mysqli, 2);
    }elseif($tabindex == 2){
        $tab = 0;
        echo '<div class="block-content tab-content overflow-hidden">';
        while($row_data = $stmt_result->fetch_assoc()) {
            $code = $row_data['code'];
            if($tab == 0){
                echo '<div class="tab-pane fade show active" id="btabs-animated-fade-'.$row_data['code'].'" role="tabpanel">';
            }else{
                echo '<div class="tab-pane fade" id="btabs-animated-fade-'.$row_data['code'].'" role="tabpanel">';
            }
            echo '<div class="form-group row">';
                echo '<div class="input-group">';
                    echo "<input type='text' class='form-control' id='text[$code]' name='text[$code]'>";
                    echo '<span class="input-group-addon"><img src="'.$row_data['image'].'" width="24px"/></span>';
                echo '</div>';
            echo '</div>';

            echo '</div>';
        $tab = 1;
        }
        echo '</div>';
    }
}else{
    echo "<p>No language to add.</p>";
}
$stmt->close();
}

Итак, мне нужна кнопка JS, которая динамически рекламирует аналогичные входные данные на странице (столько языков, сколько существует)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...