如何将变量传递给动态创建的javascript onclick函数?

时间:2017-03-15 15:05:13

标签: javascript jquery mysql twitter-bootstrap

我正在尝试创建一个onclick事件,该事件使用MySQL ajax查询的结果更新bootstrap模式元素的值:

function UpdateModal($id){
  document.getElementById("modal_id").value=$id;
}

$results = GetMySQLResults();

button.onclick = function(){

        UpdateModal($results[0]["id"]);

}

然而问题是,当我点击按钮时,总是说“$ result”是未定义的。

有没有办法在不必动态创建模态的情况下解决这个问题?

2 个答案:

答案 0 :(得分:1)

看看..

$results = GetMySQLResults(); // You are collecting results into $results 

button.onclick = function(){

  UpdateModal($result[$i]["id"]); // You are sending parameter from $result 

}

将参数更改为

 UpdateModal($results[$i]["id"]);

所以基本上你没有将任何结果收集到$ result中,这就是你得到错误的原因..

基本上是一个拼写错误$results有实际值(假设GetMySQLResults())返回值,而UpdateModal有参数$result未定义..

答案 1 :(得分:1)

修正了它。问题是$ i没有被声明,即使它是,它被更新为最后的$ i值,而不是迭代。问题还在于$ result未在全球范围内宣布。

为了解决这个问题,我做了以下几点:

var $globalResults;

...
{
   button.id = $i;

   button.onclick = function(event){
   var $j = event.currentTarget.id;
      UpdateModal($globalResult[$j]["id"]);
   }
}