在Javascript中从我的SQL数据库中获取值?

时间:2012-03-07 12:58:25

标签: php javascript mysql ajax

我已经有一段时间遇到这方面的麻烦了,请有人对此有所了解吗?

到目前为止发生了什么:当单击一个按钮时,会发生一个搜索语句并进行一次AJAX调用并返回一组结果(显示为表格),这些结果来自mysql数据库中名为'ticket的表。票证表中显示的值是“地点”'日期''时间''tPrice'。 这个'tPrice'是一个已设定的数字,即15/20/25,代表票价。这工作并显示正常,但我在尝试获取Javascript中的票价的价值时遇到问题,有没有人知道如何在JS的mysql表中引用数字?

我想要对此值进行的操作是将其乘以从下拉菜单中选择的任何数字的值。 (这个下拉菜单也是由AJAX返回的,作为用户搜索结果的一部分,这个搜索结果页面是用php编写的,并在结果表中作为一个列回显下拉菜单)

到目前为止我所拥有的是:

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\">&pound$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";
}

2 个答案:

答案 0 :(得分:0)

试试这个(改变触发功能)

$(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();
});
});

答案 1 :(得分:0)

如上所述,您有多个具有相同ID的元素。 因此,当您编写代码以通过elemeny的id =麻烦来获取价值时。 尝试:

1.更改下一行:

onchange=\"quantityChange()\"

为:

onChange=\"quantityChange(this)\"

2.将您的功能定义行更改为:

function quanitityChange(selElem){

3.改变下一行:

var quantity = $('.summary').html($('#showQuantity option:selected').val());

为:

var quantity = parseFloat($(this).find(":selected").val());

4.Change:

echo "<td id=\"ticketprice\">&pound$ticketPrice</td>\n";

为:

echo "<td id=\"ticketprice\">&pound$ticketPrice<input type='hidden' id='ticketPriceHidden' value='".$ticketPrice."'></td>\n";

5.再次在你的功能中:

var ticket = parseFloat($(this).parent().find("input#ticketPriceHidden").val());

作品?现在数量和票的输出是多少?