2017-05-15 1 views
0

Im은 (는) html, javascript, php 및 Smarty를 사용하고 있습니다.클릭 이벤트에서 데이터베이스로부터 가격을 얻으십시오

제품을 선택하면 가격을 표시하는 방법을 알고 싶습니다.

데이터베이스 연결 작동 내 제품을 표시 할 수 있지만 제품을 선택하면 그의 가격을 양식으로 표시하려고합니다. 내가 좋아하는 것

<script> 

$(document).ready(function() { 
    //your code here 
    $(function() { 
     $('#products').change(function() { 
     $('#priceInput').val($('#products option:selected').data('data-price')); 
    }); 
}); 

}); 

</script> 

.tpl

<select name="productID" id="products"> 

    {foreach from=$row item="item"} 

     <option value="$item['product_category']" data-price="$item['product_price']" >{$item['product_category'] } : {$item['product_price'] }</option> 

    {/foreach} 

</select> 



<form>  
    Price : <input value="" name="Price" type="text" id="priceInput" disabled="disabled">  
    </form> 

.PHP

<?php 

$new = ['product_id','product_category','product_price','product_quantity','product_about','product_color']; 

//Database connection 
$db = mysqli_connect('xxx','xxx','xxx','xxx') 
or die('Error connecting to MySQL server.'); 

//access Smarty template engine 
require_once('Smarty-3.1.30/libs/Smarty.class.php'); 

$smarty = new Smarty(); 
$smarty->template_dir = 'views'; 
$smarty->compile_dir = 'tmp'; 


//query product page 
$query = "SELECT * FROM cs_shop"; 
mysqli_query($db, $query) or die('Error querying database.'); 

$result = mysqli_query($db, $query); 


//query an array of products 
$rows = array(); 

//loop start 
while ($row = mysqli_fetch_array($result)) { 
    $rows[] = array(
     'product_id' => $row['product_id'], 
     'product_category' => $row['product_category'], 
     'product_price' => $row['product_price'], 
     'product_quantity' => $row['product_quantity'], 
     'product_about' => $row['product_about'], 
     'product_color' => $row['product_color'] 
    ); 
} 

//db collect data 
$smarty->assign('row', $rows); 
//template 
$smarty->display('index.tpl'); 

mysqli_close($db); 

?> 

의 .js 내가 놓치고 무엇을 알고 이리? 사전에 감사

+0

'data-price = "$ item [ 'product_price']"'PHP 값을 템플릿에 실제로 인쇄하려면 중괄호가 필요할 수도 있습니다. product_price ']} "" – insider

+0

나는 그것을 추가했지만 아무것도 표시하지 않습니다. – Ylama

답변

1
$(document).ready(function() { 
     $('#products').change(function() { 
     $('#priceInput').val($('#products option:selected').data('price')); 
    }); 
}); 
+0

나를 위해 일하지 않습니다. 덕분에 – Ylama

+0

@ Ylama 지금 사용해보기, 나는 편집했다. 문자 그대로 복사하여 붙여 넣기 만하면됩니다. jsfiddle에서 저를 위해 일하고 있습니다. – Yeray

+0

ey가 작동하지 않습니다. 시도했지만 빈 입력 필드 만 표시합니다. – Ylama

0

Becuase은 내가 두 번 데이터를 기능을 읽어 내 자바 스크립트에 .DATA 사용하고, 그건 내 실수였다 .. 그래서 수정은 다음과 같다 ->

의 .js

$(document).ready(function() { 

    $('#products').change(function() { 
     var price = $('#products option:selected').data('price'); 
    $('#priceInput').val(price); 

}); 

}); 

그래서 기본적으로 나의 이해는 그것이 "데이터 가격"과 같을 것이다, 그래서 값으로 '데이터'를 추가 내 .tpl에서 '가격'을 읽을 때. 내가 가진 것은 "데이터 - 가격 - 가격"이었습니다.

관련 문제