如何缩短重复的javascript php代码

时间:2017-06-30 08:49:15

标签: javascript php loops repeat shortcode

我是javascript的新手。请帮助以下。我有一个重复的代码块,大约40个“几乎相同的代码” - 它取得wordpress do_shortcode的返回值并保存到javascript变量(这部分工作正常)。

我希望通过某种实现相同功能的代码循环来缩短它。我尽量不使用COOKIE将值传递给PHP。 请参见前几行示例:

switch (id) {
case 1: oh = `<?php echo do_shortcode("[block id=\"oh1\"]"); ?>`;break;
case 2: oh = `<?php echo do_shortcode("[block id=\"oh2\"]"); ?>`;break;
case 3: oh = `<?php echo do_shortcode("[block id=\"oh3\"]"); ?>`;break;
case 4: oh = `<?php echo do_shortcode("[block id=\"oh4\"]"); ?>`;break;`
...
}

jQuery('#id').html(oh);

我必须像上面那样指定40行并且没有找到另一种方法。请分享您的宝贵意见。致谢

3 个答案:

答案 0 :(得分:2)

这个怎么样(我假设你的开关是用Javascript编写的)。

oh = '<?php echo do_shortcode("[block id=\"oh_num\"]"); ?>'.replace('_num', yourVariableInSwitch) ;break;`

在这种情况下,您甚至不需要切换声明。

如果你必须这样做40次:

for (var i = 0; i < 40; i++) {
    console.log('<?php echo do_shortcode("[block id=\"oh_num\"]"); ?>'.replace('_num', i);
}

使用PHP渲染javascript的开关案例语句

switch (yourVariable) {
<?php
for ($i = 1; $i < 41; $i++) {
    print 'case ' . $i . ': oh = ' . do_shortcode("[block id=oh'" . $i . "']") . '; break;';
}
?>
}

答案 1 :(得分:1)

使用ES6 string interpolation

&#13;
&#13;
while
&#13;
&#13;
&#13;

答案 2 :(得分:0)

在PHP中完成所有工作:

<?php
for($i=1,$l=41; $i<$l; $i++){
  echo "case $i: oh = ".do_shortcode("[block id='oh$i']").' break;'
}
?>