为什么我没有使用ajax从按钮获取动态值

时间:2017-12-27 06:11:37

标签: javascript php html ajax

我创建了一个动态按钮,并在单击时使用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>
 }

我注意到,当单击每个按钮时,它只返回相同的值,而不是动态返回按钮的不同值。 我的问题是:可能是什么原因?虽然按钮不是一种形式,但这也是一个原因吗?

3 个答案:

答案 0 :(得分:1)

有两种方法可以做到这一点,我更喜欢这个: -

  1. 将onclick事件添加到按钮并将唯一ID或名称传递给它。

    <button onclick="fun('<?=$name?>')">click me</button>
    
  2. 在方法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并使用类