2012-10-01 74 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

我只是把我的整個代碼放在下一條消息中 –