根据数据库信息动态添加输入

时间:2018-09-13 10:04:59

标签: javascript ajax forms

使用动态输入字段时遇到一些麻烦。 我的问题: 我有一个表单,可以为数据库中的每种语言创建输入。每种语言都会创建输入ID /名称,例如text[lang_name](例如lang[en], lang[fr], lang[pt]等),以便以后我可以通过PHP将其作为数组读取。

现在是真正的问题。我需要根据数据库中存在的每种语言动态插入一个新输入。因此,如果数据库中有3种语言,则该按钮应为我创建3种输入,每种语言各有1种输入,并且逻辑相同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按钮,该按钮可以将类似的输入动态广告到页面(只要存在多种语言)

0 个答案:

没有答案