[英]How to add JavaScript response to more than one forearch result
我目前有一個運行良好的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:
任何幫助或指導都將受到高度贊賞。 謝謝!
循環只是一遍又一遍地定義相同的功能。 調用它時,它將調用最后一個定義,而不是循環中該元素的定義。
您只需定義一次函數,然后添加其他參數。 然后,您可以為每個元素使用不同的參數進行調用。
<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
}
?>
將腳本部分設置為變量中的字符串,並使用php對其進行回顯,php將每個<?php ?>
視為不同的編碼塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.