我创建了一个动态按钮,并在单击时使用ajax调用它。当点击每个按钮时,它会从网站上获取一个项目列表,这使它变为动态。
foreach($items as $item_link){
$i++;
$item_name = $name[$i];
<button type="button" id="btn" name="btn" value="'.$item_link[$i].'" onclick= " getItem(this.value);">'.$item_name.'</button>
}
我注意到,当单击每个按钮时,它只返回相同的值,而不是动态返回按钮的不同值。 我的问题是:可能是什么原因?虽然按钮不是一种形式,但这也是一个原因吗?
答案 0 :(得分:1)
有两种方法可以做到这一点,我更喜欢这个: -
将onclick事件添加到按钮并将唯一ID或名称传递给它。
<button onclick="fun('<?=$name?>')">click me</button>
在方法fun中调用ajax请求并将名称或id传递给它,并将其作为函数参数接收。
答案 1 :(得分:1)
1.初始和foreach()
也将按钮id
更改为class
。
2.你没有echod
你的按钮,所以我认为它根本就没有。所以echo
它和带引号的按钮。
正确的代码: -
foreach($items as $item_link){
$i++;
$item_name = $name[$i];
echo '<button type="button" class="btn" name="btn" value="'.$item_link[$i].'" onclick= "getItem(this.value);">'.$item_name.'</button>';
}
<强> 注: - 强>
id每个元素必须是唯一的,否则当你在jquery中使用它时,你将始终得到第一个元素数据。
答案 2 :(得分:1)
一个问题是您对所有按钮使用相同的ID,这会给浏览器带来意外的行为。你需要改变这样的事情:
foreach($items as $item_link){
$i++;
$item_name = $name[$i];
<button type="button" id="'.$item_link[$i].'" name="btn" value="'.$item_link[$i].'" onclick= " getItem(this.value);">'.$item_name.'</button>
}
或者简单地删除ID并使用类