【发布时间】:2012-05-23 17:35:06
【问题描述】:
我想知道是否有人可以帮助我或引导我朝着正确的方向前进......基本上我有一个 Javascript 函数,它计算票价(来自 mysql 数据库)和数量(来自下拉菜单)。 Javascript 和 PHP 工作正常……但仅针对第一个结果,该功能不是动态的,确实需要帮助来解决这个问题。
在我的 PHP 中,从 SQL 语句返回一个表:
$postCodeSQL = "SELECT * FROM ticket WHERE locationID IN (SELECT locationID FROM location WHERE postCode LIKE '$pcSearch') ";
$postCoderesult = mysql_query($postCodeSQL) or die(mysql_error());
while ($pcRow = mysql_fetch_assoc($postCoderesult)) {
$ID = $pcRow['ticketID']; //row in ticket table on database
$venue = $pcRow['venue'];
$ticketPrice = $pcRow['tPrice'];
$date = $pcRow['date'];
$time= $pcRow['time'];
echo "<tr>\n";
echo "<td id=\"venuePlace\">$venue <input type='hidden' id='venuePlaceHidden' class='venuePlaceHidden' value='".$venue."'></td>\n";
echo "<td id=\"ticketprice\">£$ticketPrice <input type='hidden' id='ticketPriceHidden' class='ticketPriceHidden' value='".$ticketPrice."'></td>\n";
echo "<td >
<select name =\"showQuantity\" id=\"showQuantity\" class =\"showQuantity\" onChange=\"calculateCost()\" >
<option value=\"Select\">Select...</option>
<option value=\"1\">1</option>
<option value=\"2\">2</option>
<option value=\"3\">3</option>
<option value=\"4\">4</option>
<option value=\"5\">5</option>
</select>
</td>\n";
echo "<td id=\"date\">$date <input type='hidden' id='dateHidden' class='dateHidden' value='".$date."'></td>\n";
echo "<td id=\"time\">$time <input type='hidden' id='timeHidden' class='timeHidden' value='".$time."'></td>\n";
echo "<td> <input type= \"button\" class= \"buyMe\" value= \"Buy\" name=\"buyMe\" onclick=\"grandTotal()\" >
</td>\n";
echo "</tr>\n";
}
插入隐藏字段,以便 Javascript 函数可以解析这些值。 JS 函数解析这些值并乘以票的成本 ($ticketPrice) 并将其乘以交付值:
function quantityChange() {
//Select the value of the drop down list
var quantity = $('.showQuantity option:selected').val();
//get the value of the number from the tPrice column in 'ticket' table
var ticket = parseInt(document.getElementById('ticketPriceHidden').value);
//get the venue value
var venue = document.getElementById('venuePlaceHidden').value;
var date = document.getElementById('dateHidden').value;
var time = document.getElementById('timeHidden').value;
//multiply them together
var total = quantity * ticket;
return {
venue: venue,
quantity: quantity,
ticket: ticket,
date: date,
time: time,
total: total
};
}
function calculateCost () {
var data = quantityChange();
$('#summary').html('You have chosen '+ ' ' + data.quantity + ' ' + 'tickets @' + ' ' + data.venue + ' = ' + ' ' + '£' + data.total);
}
如前所述,此函数适用于表返回的顶部结果,但是在我的表中返回的结果不止一个,JS 不适用于这些值。我的问题与重复 ID 有关,因为返回的每个结果都具有相同的 ID。
我已经给每个结果一个类,但我不能执行“getElementByClass”方法。 请问有人知道如何编辑此代码,以便 JS 函数适用于返回的其他结果吗?我有一种感觉,我可能需要一个 foreach() 循环来声明“对于返回的每个值,应用 JS 函数......”或类似的东西?
非常感谢任何帮助,我正在努力提高我的接受率!
【问题讨论】:
-
首先它在继续之前罢工..您的查询是否应该更改为`“SELECT tkt.* FROM ticket tkt, location loc WHERE tkt.locationID =loc.locationID and loc.postCode LIKE '$ pcSearch' "` ?
-
感谢您的回复,但 SQL 运行良好,不是问题。问题在于PHP中返回重复ID,无法实现动态行为。
-
您正在为
和 元素设置重复的 ID。而不是将 $ID 连接到您创建的元素的 ID。 这是个好主意,我会试试看...我会在哪里尝试 concat $ID 在代码中?即 echo "$venue.... 这将是 echo " $venue...*rest of code* ??
标签: javascript php function