javascript - 如何将 JavaScript 响应添加到多个 forearch 结果

标签 javascript php foreach

我目前有一个运行良好的 PHP 脚本,但在添加 JavaScript 时遇到了一个小问题。

我想要实现的是在运行良好的 php foreach 循环中显示结果,但我有一个 onclick JavaScript 函数,它应该在与 foreach 循环的结果相同的行中显示结果,但是相反它仅更改一个结果的当前值。

所以我目前有四种有价格的车型。选择一个后,我希望名称和价格显示在 [echo "Select:"的顶部。 $名称]行。

我目前的代码是这样的:

<?php
   $cars = array(
   array("Volvo",40.000),
   array("BMW",45.000),
   array("Saab",50.000),
   array("Land Rover",60.000)
   );

foreach($cars as $key){
    $name = $key[0];
    $price = $key[1];

    echo "<span id='$name'></span> <span id='$price'></span><br />";
    echo "Select: " . $name;
?>
 <script type="text/javascript">
     function grabData(d){
         document.getElementById("<?php echo $price; ?>").innerHTML = d.getAttribute("data-price");
         document.getElementById("<?php echo $name; ?>").innerHTML = d.getAttribute("data-title");
     }
 </script>
 <input onclick="grabData(this);" type="radio" name="rate" data-price="<?php echo $key[1]; ?>" data-title="<?php echo $key[0]; ?>"><br />
<?php
}
?>

因此,如果选择所有选项,最终结果应如下所示:

Volvo 40
Volvo: 
BMW 45
BMW:
Saab 50
Saab: 
Land Rover 60
Land Rover: 

非常感谢任何帮助或指导。谢谢!

最佳答案

循环只是一遍又一遍地定义相同的函数。当它被调用时,它将调用最后一个定义,而不是循环中该元素的定义。

您应该只定义一次函数,然后添加其他参数。然后您可以为每个元素使用不同的参数调用它。

<script type="text/javascript">
function grabData(d, priceid, nameid){
    document.getElementById(priceid).innerHTML = d.getAttribute("data-price");
    document.getElementById(nameid).innerHTML = d.getAttribute("data-title");
}
</script>

<?php
$cars = array(
              array("Volvo",40.000),
              array("BMW",45.000),
              array("Saab",50.000),
              array("Land Rover",60.000)
              );

foreach($cars as $key){
    $name = $key[0];
    $price = $key[1];

    echo "<span id='$name'></span> <span id='$price'></span><br />";
    echo "Select: " . $name;
    ?>
    <input onclick="grabData(this, '<?php echo $price; ?>', '<?php echo $name; ?>');" type="radio" name="rate" data-price="<?php echo $key[1]; ?>" data-title="<?php echo $key[0]; ?>"><br />
    <?php
}
?>

关于javascript - 如何将 JavaScript 响应添加到多个 forearch 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44293591/

相关文章:

javascript - 填充 javascript 类型数组的最佳方法?

javascript - 如何在 jquery 中制作背景幻灯片?

php - 2 foreach。对于 'n' 级别,闯入新的 ul

c# - 如何基于数组列表创建动态按钮

javascript - 排队 Freecodecamp

javascript - .length 在第一次使用 .blur 后停止工作

php - 在 PHP 中缩短/截断 UTF8 字符串

javascript - 在 <noscript> 中设置 PHP 变量

php if语句检查当前日期时间是否在2个日期时间列之间

php - 按年份对串联数据值进行分组