首页 > 解决方案 > 从 JavaScript For 循环创建动态 PHP 变量(回显)

问题描述

我正在尝试减少一些 Javascript 函数。现在我当前的设计我使用 Javascript 动态创建年份列表。现在我让它从存储在数据库中的值更新当前选择的值,我想知道是否可以在我创建的所有年份列表中复制它。一共有10个。

当前代码:

for (a = 1; a <= 1; a++) {
    console.log("STARTING");
    // reference to a specific dropdown list
    var ddYears = $("#ddYears" + a + "");
    console.log(ddYears);
    var theStartYear = "$we" + a + "startyear";
    console.log(theStartYear);
    var ddCurrentSelectedYear = '<?php echo ' + theStartYear + '; ?>'; // THIS IS THE LINE I'M HAVING TROUBLE WITH
    console.log(ddCurrentSelectedYear);
    var initialOption = $("<option/>");
    if (ddCurrentSelectedYear == "") {
    initialOption.html("Year");
    initialOption.val("");
    initialOption.attr('selected', 'selected');
    }
    ddYears.append(initialOption);
    //Loop and add the Year values to DropDownList.
    for (var i = currentYear; i >= 1920; i--) {
        var option = $("<option />");
        if (i == ddcurrentSelectedYear) {
            option.attr('selected', 'selected');
        }
        option.html(i);
        option.val(i);
        ddYears.append(option);
    }
}

我正在尝试对变量进行“硬编码”,因此当它迭代时,它可以从我的 PHP 中获取应该已经存储在变量中的值。我可以用一个值来做,但我希望它用 10 个值来做,所以我不必为 1 个 PHP 调用创建 10 个单独的函数。随着“A”的增加,该变量在后端被命名为相同的名称,这意味着该值可能存在。我对 JavaScript 不是很好,所以可能是我的语法错误。

同样,根据我在 stackoverflow 上看到的内容,当我调用该行(我遇到了问题)时,我不能再强调这一点,如下所示,它将从我的 PHP 中检索一个值。

var ddcurrentSelectedYear =  '<?php echo $we1startyear; ?>'; 

有人看到我的 JavaScript 语法有任何问题吗?

编辑1:我在做什么似乎有些混乱,所以我在下面放置了一些我目前正在使用的代码并且它可以工作。您将看到所有更改不是我将其作为硬编码名称访问的 for 循环。数字是 html 选择器和 PHP 输出变量中唯一改变的东西。这就是我试图用 for 循环实现的全部目的,而不是为一个字符更改编写这个函数 20 多次,让 for 循环为我做繁重的工作......(让我恢复我的问题- 有没有办法为我目前正在做的事情编写一个函数?

$(function () {
            var ddYears = $("#dd1Years");
            var ddCurrentSelectedYear =  '<?php echo $we1startyear; ?>'; 
            // create intial blank option
            var initialOption = $("<option />");
            if (dd1currentSelectedYear == "") {
                initialOption.attr('selected', 'selected');
            }
            initialOption.html("Year");
            initialOption.val("");
            ddYears.append(initialOption);
            //Loop and add the Year values to DropDownList.
            for (var i = currentYear; i >= 1920; i--) {
                var option = $("<option />");
                if (i == dd1currentSelectedYear) {
                    option.attr('selected', 'selected');
                }
                option.html(i);
                option.val(i);
                ddYears.append(option);
            } 
        }
        $(function () {
            var ddYears = $("#dd2Years");
            var ddCurrentSelectedYear =  '<?php echo $we2startyear; ?>'; 
            //Loop and add the Year values to DropDownList.
            for (var i = currentYear; i >= 1920; i--) {
                var option = $("<option />");
                if (i == ddCurrentSelectedYear) {
                    option.attr('selected', 'selected');
                }
                option.html(i);
                option.val(i);
                ddYears.append(option);
            } 
        }
        $(function () {
            var ddYears = $("#dd3Years");
            var ddCurrentSelectedYear =  '<?php echo $we3startyear; ?>'; 
            //Loop and add the Year values to DropDownList.
            for (var i = currentYear; i >= 1920; i--) {
                var option = $("<option />");
                if (i == ddCurrentSelectedYear) {
                    option.attr('selected', 'selected');
                }
                option.html(i);
                option.val(i);
                ddYears.append(option);
            } 
        }

标签: javascriptphp

解决方案


推荐阅读