动态添加时脚本未运行

时间:2016-06-30 01:55:31

标签: javascript php html dom smarty

{include file="head.tpl" title="Combate"}
{include file="navBar.tpl" dir=$dir}
<table id="CombatLister">

</table>

Nombre: <input type="text" id="nombrePJ">  
AC <input type="number" id="ACPJ">  
Iniciativa <input type="number" id="Init">
<button id="añadirParty" onclick="addPJButt()">Añadir</button>



<script>

function addPJButt(){
   var name=document.getElementById("nombrePJ").value;
   var ac=document.getElementById("ACPJ").value;
   var iniciativa=parseInt(document.getElementById("Init").value);
   addPJ(name,ac,iniciativa);
}
function addPJ(nombre,ac,init){
    var table=document.getElementById("CombatLister");
    var row=table.insertRow(0);
    var cellNombre=row.insertCell(0);
    var cellInit=row.insertCell(1);
    var cellAc=row.insertCell(2);
    cellNombre.innerHTML=nombre;
    cellInit.innerHtml=init;
    cellAc.innerHtml=ac;
}

</script>
<script>
{$x=0}
{foreach $party as $pj}

addPJ({$pj.nombre},{$pj.ac},{$pj.init})

{/foreach}
</script>

我有一个智能模板,使用另一个页面中的数组,将其添加到“CombatLister”表中。但是,由于某种原因,addPJ()脚本不会运行。我只是学习Javascript的绳索,所以也许我跳过一些东西,但到目前为止,我没有答案为什么它不起作用。

我尝试使用addPJButt()来检查addPJ()脚本是否错误,但是脚本正常工作:当我将数据放在输入类型上时,他们正确地添加了名称。

我不认为这是Smarty的问题。检查页面的源代码类似,写这个我叫$ pj:

<script>

    addPJ(Galahad,14,5);

</script>

PS:作为一个额外的问题,但不是那么重要,在addPJ的insertCell方法中只添加了第一个单元格。

1 个答案:

答案 0 :(得分:0)

addPJ(Galahad,14,5);正在寻找未定义的变量Galahad

你需要引用它,以便将其打印为javascript字符串

尝试

addPJ('{$pj.nombre}',{$pj.ac},{$pj.init})

注意:我多年没有使用过smarty,并且假设引号是文字