繁体   English   中英

如何在JavaScript脚本中循环php变量

[英]how do I loop a php variable within a javascript script

我创建了一个带有文本字段且具有Spry验证(即javascript)的表单。 用户可以从1到10的形式选择行数。我还需要下面的代码来进行扩展,但我对javascript不够熟悉,无法使其正常工作。

$ divkey是控制表单中有多少行的变量。

原版的

<script type="text/javascript">
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "none", {validateOn:["change"], maxChars:20});
var sprytooltip1 = new Spry.Widget.Tooltip("sprytooltip1", "#sprytrigger1");
</script>

所以我需要基于$ divkey重复行'var sprytextfield1 ...',下一行是'var sprytextfield2 ...',依此类推。 有人可以重写一下,这样行吗?

尝试使用php

<script type="text/javascript">
<?php   for ($i = 0; $i < $divkey; $i++) { $num=$i+1; ?>  
var sprytextfield<?php echo $num;?> = new Spry.Widget.ValidationTextField("sprytextfield<?php echo $num;?>", "none", {validateOn:["change"], maxChars:20});
<?php }?>
var sprytooltip1 = new Spry.Widget.Tooltip("sprytooltip1", "#sprytrigger1");
</script>

尝试使用JavaScript

<script type="text/javascript">
var numwrestler = <?php echo $wrestlerkey; ?>;
var sprytextfield = [];
for (var i = 0; i < numwrestler; i++) {
    var num = i+1;  
var sprytextfield[num] = new Spry.Widget.ValidationTextField("sprytextfield"+num, "none", {validateOn:["change"], maxChars:20});
}
var sprytooltip1 = new Spry.Widget.Tooltip("sprytooltip1", "#sprytrigger1");
</script>

我建议您将Javascript数组用于此类任务。 您的代码大部分是正确的,但是for循环中的var不正确,并且创建num变量而不是仅使用i是多余的。

<script type="text/javascript">
var sprytextfield = new Array();
var numwrestler = <?php echo $wrestlerkey; ?>;
for(var i = 0; i < numwrestler; i++){
    sprytextfield[i] = new Spry.Widget.ValidationTextField("sprytextfield"+(i+1), "none", {validateOn:["change"], maxChars:20});
}

var sprytooltip1 = new Spry.Widget.Tooltip("sprytooltip1", "#sprytrigger1");
</script>

在脚本中包含PHP变量之前,请确保已在文件中定义了PHP变量。

在您的PHP代码中,您永远不会定义变量divkey ,通过默认,该值将为0。尝试:

<script type="text/javascript">
<?php  $divkey = 10; for ($i = 0; $i < $divkey; $i++) { $num=$i+1; ?>  
var sprytextfield<?php echo $num;?> = new Spry.Widget.ValidationTextField("sprytextfield<?php echo $num;?>", "none", {validateOn:["change"], maxChars:20});
<?php }?>
var sprytooltip1 = new Spry.Widget.Tooltip("sprytooltip1", "#sprytrigger1");
</script>

请注意,由于i++$num=$i+1 ,在循环的每次迭代中用作索引$num的变量将增加2。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM