2012-10-01 145 views
0

我很JavaScript新手, 有关于在JavaScript中数组的一个问题。 单刀直入: 我的HTML代码:结合从SQL查询和javascript结果计算领域

<input type="text" name="conPrice" id="conPrice" size="16" maxlength="128"/> 
<input type="text" name="OverP" id="OverP" size="16" maxlength="128" /> 
<div id="slider"></div> //Slider 

第一场的数量,即从滑块拉到。 从SQL表价格第二场

SQL是基于一个条件,有四个方面:

| ID | MIN | MAX | PRICE | 

我试图得到一个价格列价格领域OverP这取决于我的滑块价值是。因此,例如,如果我有一个滑块6号,这是1-7 MIN和MAX之间,这样的价格是10

我有这样的SQL:

<?php 
$x = mysql_query("SELECT p_max AS max FROM dsd_price"); 
$y = mysql_query("SELECT p_min AS min FROM dsd_price"); 
$z = mysql_query("SELECT p_price AS price FROM dsd_price"); 
while ($x_array = mysql_fetch_array($x)){$max[] = $x_array;} 
while ($y_array = mysql_fetch_array($y)){$min[] = $y_array;} 
while ($z_array = mysql_fetch_array($z)){$price[] = $z_array;} 
?> 

最后我JS:

<script> 
$(document).ready(function slider() { 
$("#slider").slider({ 
    value:1, 
    min: 0, 
    max: 201, 
    step: 1, 
    slide: function(event, ui) { 
//Its setting the slider value to the element with id "conPrice" 
$("#conPrice").val(ui.value); 
    } 
}); 
}); 

$(document).ready(function calcul() { 
var frm = document.dsd_form; 
var quant = frm.conPrice; 
var overp = ['<?php echo implode("','", $price); ?>']; 
var mini = ['<?php echo implode("','", $min); ?>']; 
var maxi = ['<?php echo implode("','", $max); ?>']; 
for(index = 0; quant > mini[index], quant < maxi[index]; index++){ 
    $("#OverP").val(overp[index]); 
}) 
} 
</script> 

,我没有得到一个结果,我想,我知道这个问题是我的JS。 希望尽快为我的话题提出一些建议。

UPDATE: 测试页的整个代码把为止。滑盖滑呢,滑块值正在处理conPrice,但计算不工作...

<script src="jquery.js" type="text/javascript" charset="utf-8"></script> 
<!-- For slider --> 
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> 
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script> 

<!-- Slider JS --> 
<?php 
$x = mysql_query("SELECT p_max AS max FROM dsd_price"); 
$y = mysql_query("SELECT p_min AS min FROM dsd_price"); 
$z = mysql_query("SELECT p_price AS price FROM dsd_price"); 
while ($x_array = mysql_fetch_array($x)){$max[] = $x_array['max'];} 
while ($y_array = mysql_fetch_array($y)){$min[] = $y_array['min'];} 
while ($z_array = mysql_fetch_array($z)){$price[] = $z_array['price'];} 
?> 
<script> 
$(document).ready(function slider() { 
$("#slider").slider({ 
    value:1, 
    min: 0, 
    max: 201, 
    step: 1, 
    slide: function(event, ui) { 
    //Its setting the slider value to the element with id "conPrice" 
    $("#conPrice").val(ui.value); 
    } 
}); 
    function price(){ 
    var frm = document.dsd_form; 
    var quant = frm.conPrice; 
    var overp = ['<?php echo implode("','", $price); ?>']; 
    var mini = ['<?php echo implode("','", $min); ?>']; 
    var maxi = ['<?php echo implode("','", $max); ?>']; 
    for(var index = 0; quant > mini[index], quant < maxi[index]; index++){ 
     $("#OverP").val(overp[index]); 
    } 
} 
}); 
</script> 
</head> 
<body> 
<form id="dsd_form" name="dsd_form" action="db_create_sql.php" method="post" class="niceform"> 
<fieldset> 
     <dl> 
      <dt><label for="conPrice">Price:</label></dt> 
      <dd><input type="text" name="conPrice" id="conPrice" size="16" maxlength="128" /> 
      <input type="text" name="OverP" id="OverP" size="16" maxlength="128" /> 
      <div id="slider" ></div> 
      </dd> 
     </dl> 
</fieldset> 
</form> 
</body> 
</html> 

有SQL数据库:

p_id | p_min | p_max | p_price 
    1  1  1  11 
    2  2  5  13 
+0

你得到什么结果呢? –

+0

到目前为止,我没有收到任何消息,因为JS的最后一部分肯定有错误。如果我会拿出部分开始以$(文件)。就绪(函数演算(){ 它给我滑块和数字输出conPrice –

+0

使用的浏览器工具尝试,如萤火虫(火狐)或Chrome的开发工具(F12打开它),它会显示任何JS错误 –

回答

0

看来,你的括号不匹配的calcul()函数。试试这个:

$(document).ready(function calcul() { 
var frm = document.dsd_form; 
var quant = frm.conPrice; 
var overp = ['<?php echo implode("','", $price); ?>']; 
var mini = ['<?php echo implode("','", $min); ?>']; 
var maxi = ['<?php echo implode("','", $max); ?>']; 
for(index = 0; quant > mini[index], quant < maxi[index]; index++) 
{ 
    $("#OverP").val(overp[index]); 
}}); 
+0

我只是把我的整个代码放在下一条消息中 –