如何在以后的代码中区分按下的按钮?

时间:2013-11-26 12:20:08

标签: javascript php

我的代码有问题..

我正在制作一个“动物园系统”,使用按钮点击(其值=动物类型),它为我添加了该类型的新项目(<select>动物)。我遇到的问题是,我无法确定(因为我正在使用按钮,而不是提交和它的$ _POSTS),10种动物中的哪一种(10个具有不同标题的按钮(例如“添加鸟”,“通过点击“选择”添加哺乳动物“等”和不同的按钮值。

当我“添加鸟类”时,我不仅要创建具有特定鸟类的<select>,还要创建下一个元素(例如,下一个<select>,其颜色为羽毛)。对于每种类型,我希望有不同的元素,我想添加到该稳定<select>

在我的代码中,有newdiv.innerHTML = \"$animals[1]\";,因为如果我手动将值放入其中(它会生成选择id_type = 1的动物),它运行良好。

$anim = array();
$res = mysqli_query($db,"SELECT * FROM animals ORDER BY name");
while ($arr = mysqli_fetch_assoc($res)) {
   $anim[$arr['id_type']][] = "<option value='".$arr['id_animal']."'>".$arr['name']."</option>";
   $animals[$arr['id_type']]= '<select name=id_anim[]>' . implode(' ', array_values($anim[$arr['id_type']])) . '</select>';
}

$anim_type = "";
$types = mysqli_query($db, "SELECT id_type, name_type FROM type_animals ORDER BY id_type");
while ($t = mysqli_fetch_assoc($types)) {
    $anim_type .= "<button type='button' name='atype' value='".$t['id_type']."' onclick=\"zoo('dynamicInput', '".$t['id_type']."');\">Add ".$t['name_type']." </button>";              
}

echo"
<script type=\"text/javascript\">
function zoo(divName, atype){
        var newdiv = document.createElement('div');
        newdiv.innerHTML = \"$animals[1]\";
        document.getElementById(divName).appendChild(newdiv);
}
</script> ";

你认为,在某种程度上可以区分按下哪个按钮所以我可以在JS中切换每个数字的位置(按下按钮的值,id_type的值),我可以指定应该生成哪些内容?

或者是否可以使用PHP而不是JavaScript生成内容(因此我可以使用类似$ _POST的内容 - 虽然它只是一个按钮,而不是提交)?

如何在JavaScript代码中使用该传递的值,以便根据该值生成更多内容?我看到愚蠢的方式,手动插入10个值,并为每个人设置它的全部内容。但我希望看到聪明的方式(即稳定的核心,以及为每个值生成自己内容的开关)。

edit for @tttpapi: the generated code is:
stable: 4x <button type='button' name='atype' value='1-4' onclick=\"zoo('dynamicInput', '1-4');\">Add birds/mammals/beasts/herbivores </button>
generated after "birds" clicked: 
<select name=id_anim[]><option value='1'>Parrot</option> <option value='2'>Pelican</option> <option value='3'>Hummingbird</option></select>

And this all is, in latter code coated in:
<form method='POST'><fieldset>
<div name='dynamicInput'></div>
</fieldset></form>

非常感谢;)

1 个答案:

答案 0 :(得分:1)

您可以使用

获取按钮单击的值
$button = $_POST["nameOfButton"];

这里将“nameOfButton”替换为“atype”。

注意:您需要在不同的按钮上添加相同的按钮名称标签。