Php 用Javascript从我的sql数据库中获取值?
这件事我已经有点麻烦了,有人能解释一下吗 到目前为止发生了什么:当点击一个按钮时,会出现一个搜索语句,并发出一个AJAX调用,并返回一组显示为表的结果,这些结果来自mysql数据库中名为“ticket”的表。票证表中显示的值为“地点”“日期”“时间”“tPrice”。 此“tPrice”是一个已设置的数字,即15/20/25,表示车票的价格。这可以正常工作,显示也很好,但是我在用Javascript获取门票价格时遇到了一个问题,有人知道如何在JS中引用mysql表中的数字吗 我想用这个值做的是将它乘以从下拉菜单中选择的任何数字的值。这个下拉菜单也是由AJAX作为用户搜索结果的一部分返回的,这个搜索结果页面是用php编写的,并且作为结果表中的一列响应下拉菜单 到目前为止,我得到的是:Php 用Javascript从我的sql数据库中获取值?,php,javascript,mysql,ajax,Php,Javascript,Mysql,Ajax,这件事我已经有点麻烦了,有人能解释一下吗 到目前为止发生了什么:当点击一个按钮时,会出现一个搜索语句,并发出一个AJAX调用,并返回一组显示为表的结果,这些结果来自mysql数据库中名为“ticket”的表。票证表中显示的值为“地点”“日期”“时间”“tPrice”。 此“tPrice”是一个已设置的数字,即15/20/25,表示车票的价格。这可以正常工作,显示也很好,但是我在用Javascript获取门票价格时遇到了一个问题,有人知道如何在JS中引用mysql表中的数字吗 我想用这个值做的是将
function quantityChange() {
//Select the value of the drop down list
var quantity = $('.summary').html($('#showQuantity option:selected').val());
//get the value of the number from the tPrice column in 'ticket' table
var ticket = parseFloat($('#ticketprice').val());
//multiply them together
var total = quantity * ticket;
return (total);
在Firebug中调试后,它没有给我任何错误,但也没有给我任何结果…请,任何帮助都将不胜感激!谢谢
编辑:
php代码:
$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)) {
$venue = $pcRow['venue'];
$ticketPrice = $pcRow['tPrice'];
$date = $pcRow['date'];
$time= $pcRow['time'];
echo "<tr>\n";
echo "<td>$venue</td>\n";
echo "<td id=\"ticketprice\">£$ticketPrice</td>\n";
echo "<td >
<select name =\"showQuantity\" id=\"showQuantity\" class =\"showQuantity\" onchange=\"quantityChange()\" >
<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>$date</td>\n";
echo "<td>$time</td>\n";
echo "</tr>\n";
}
尝试更改触发器功能
$(document).ready(function() {
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 = parseFloat($('#ticketprice').val());
//multiply them together
var total = quantity * ticket;
//console.log(total);
//console.log(ticket);
//console.log(quantity);
return (total);
}
// Need a simple trigger
$('#showQuantity').change(function() {
quantityChange();
});
});
如上所述,您有多个具有相同ID的元素。 因此,当您编写代码以通过elemeny的id=troubles获取值时。 尝试: 1.更改下一行:
onchange=\"quantityChange()\"
var quantity = $('.summary').html($('#showQuantity option:selected').val());
致:
2.将函数定义行更改为:
function quanitityChange(selElem){
3.更改下一行:
onchange=\"quantityChange()\"
var quantity = $('.summary').html($('#showQuantity option:selected').val());
致:
4.更改:
echo "<td id=\"ticketprice\">£$ticketPrice</td>\n";
工作?现在数量和票证的输出是多少?页面上是否只有一个票证价格下拉列表?您在该选择器中提供了一个ID,所以我希望如此……您确定该值已填充到下拉列表的选项中吗?您可以右键单击并使用Firebug检查元素以确保正确。您不需要$'.summary'.html$'showQuantity选项:selected'.val.$'showQuantity选项:selected'.val就足够了。Firebug在计算总计之前显示了quantity和ticket的值是什么?下拉列表有一个ID yes,我已经手动输入了选项值1-5的值,但是数据库中的tPrice是在一段时间内生成的{}php文件中的循环try:AlertQanity,在为票证定义了var和相同的变量之后。警报消息的输出是什么?谢谢Charles Weiss的回复,我已经实现了这些更改,Firefox告诉我quantityChange没有定义?请检查定义函数名时函数名与调用函数名之间是否有错拼。谢谢,我会这样做。当我收到票的时候;它给我'NaN'不是一个数字,因为某种原因,它不会将我的tPrice列中的值识别为一个数字:/@TimJohnstone:我想当然地认为只有一个select语句,并且您正在运行jQuery。您可能需要在触发器上使用一个活动处理程序来检测对dom的ajax更改。谢谢你,伙计。但是,此项的输出为“NaN”。我能够获取用户选择的选项值,但我遇到的主要问题是获取值:$ticketPrice=$pcRow['tPrice'];回声英镑$ticketPrice&n;这是存储在我的数据库中的值,我试图让函数得到这个['tPrice']值,并将其乘以quantity变量。谢谢,但是我现在在提醒他们时,数量和票证都得到了'NaN'。你想让我重新发布我现在的代码吗?你应该用你当前的代码和输出更新你的问题。
echo "<td id=\"ticketprice\">£$ticketPrice<input type='hidden' id='ticketPriceHidden' value='".$ticketPrice."'></td>\n";
var ticket = parseFloat($(this).parent().find("input#ticketPriceHidden").val());