【问题标题】:How to add JavaScript response to more than one forearch result如何将 JavaScript 响应添加到多个搜索结果
【发布时间】:2017-11-01 18:42:02
【问题描述】:

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

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

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

我当前的代码是这样的:

<?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: 

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

【问题讨论】:

  • 你真的用价格作为显示价格的span的ID吗?如果您有两辆价格相同的汽车怎么办?

标签: javascript php foreach


【解决方案1】:

将脚本部分设置为变量中的字符串并使用 php 回显它,php 将每个 &lt;?php ?&gt; 视为不同的编码块。

【讨论】:

    【解决方案2】:

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

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

    <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
    }
    ?>
    

    【讨论】:

      猜你喜欢
      • 2014-08-03
      • 2017-09-15
      • 2020-12-15
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 1970-01-01
      • 1970-01-01
      • 2017-03-09
      相关资源
      最近更新 更多