javascript - 从 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);
}
}
解决方案
推荐阅读
- c++ - 我的 Boyer-Moore 算法只搜索我的文本文件中的前 3000 个字符
- javascript - 电子,最小化屏幕
- javascript - 一旦我设置了 screenProps 的 setState,如何避免在 tabNavigator 中重新渲染屏幕?
- java - Camel SEDA 如果队列已满,则关闭消息
- c - 禁止浮动到双重转换
- r - R:当max <= min时,如何替换(切换)数据框中连续的最大值和最小值?
- c++ - 私有设置和类 OMP、随机 C++。结果理解有问题
- bash - 如果输出不为空,则打印命令的输出,否则回显无输出
- javascript - Google App Script .getEvents 问题 - 如何检索事件
- cmake - 修改目标安装路径