使用从循环数组创建的按钮调用数据

时间:2019-02-21 12:42:27

标签: javascript php

希望标题符合我的问题。

我循环显示了表中的数据,并显示为按钮。

<?php
$a=0;
while($row = mysql_fetch_assoc($execute)){
    $ID = $row['id'];
    $name[] = $row['names'];
    echo "<button name=\"btn$ID\" class='btnName' onClick='showForm()'>$name[$a]</button>";
    $a++;
}

<div id="result" style="display: none;">
    //name from clicked buttons should be displayed here
</div>
?>

这是函数:

<script type="application/javascript">
    function showForm(){
        document.getElementById('result').style.display="block";
    }
</script>

“ id”字段只是一个递增字段。 如果单击按钮,则要在结果div中显示我从这些按钮之一中单击的名称。

我怎么称呼它?

6 个答案:

答案 0 :(得分:2)

将您的功能更改为这样

 function showForm(elem){
    document.getElementById('result').innerHTML = elem.innerHTML;
    document.getElementById('result').style.display="block";
}

并这样称呼

onClick='showForm(this)'

答案 1 :(得分:0)

不确定我是否正确理解了您的问题,但如果确实理解了,请尝试下面的功能。

function showForm(ev) {
  // Or if you want to get the text of the button change it to ev.target.innerText
  const name = ev.target.getAttribute("name"); 

  const result = document.getElementById('result');

  result.innerText = name;
  result.style.display = 'block';
}

答案 2 :(得分:0)

您可以尝试以下方法,看看它如何为您工作:

<?php
while($row = mysql_fetch_assoc($execute)){
    echo "<button name=\"btn{$row['id']}\" class='btnName' onClick=\"showForm('{$row['name']}')\">{$row['names']}</button>";
}
?>

<div id="result"></div>

<script>
function showForm(name) {
    document.getElementById('result').innerText = name;
}
</script>

答案 3 :(得分:0)

将您的代码更新为此:

echo '<button name="btn'.$ID.'" class="btnName" onClick="showForm()" data-name="'.$name[$a].'">'.$name[$a].'</button>';

然后将您的JS更改为此:

function showForm(e) {
  var name = e.target.getAttribute("data-name");
  var result = document.getElementById('result');

  result.innerText = name;
  result.style.display = 'block';
}

答案 4 :(得分:0)

显然您的代码应该是

<?php
 $a=0;
 while($row = mysql_fetch_assoc($execute)){
  $ID = $row['id'];
  $name[] = $row['names'];
  echo "<button name='btn{$ID}' class='btnName' onClick=showForm('{$name[$a]}')>{$name[$a]}.    </button>";
  $a++;
 }
?>

<div id="result" style="display: none;">
</div>


<script type="application/javascript">
 function showForm(value){
    let div = document.getElementById('result');
    div.style.display="block";
    div.innerText = value;
 }
</script>

答案 5 :(得分:0)

javascript部分

function showForm() {    
  var x = document.getElementsByClassName('btnName')
  for(var i = 0; i< x.length; i++){
    x[i].addEventListener("click", function(e){
    result.innerHTML = e.target.getAttribute("name")
    })
  }
}
showForm()
<button name="Button1" class='btnName'>Button1</button>
<button name="Button2" class='btnName'>Button2</button>
<button name="Button3" class='btnName'>Button3</button>
<button name="Button4" class='btnName'>Button4</button>

<div id="result" ></div>