PDA

View Full Version : سوال: نمایش در لیست



leila71
یک شنبه 15 شهریور 1394, 18:25 عصر
سلام به همه ی دوستان برنامه نویس
من دوتا select option دارم که فیلدای هر دو ار بانک پر میشه ولی میخوام وقتی ایتمی رو در لیست اول انتخاب می کنم لیست دوم مطابق با لیست اول پر بشه. مثلا فیلدای لیست اول شامل نام شهرها باشه که از بانک میخونه و وقتی هر شهری رو انتخاب میکنم شهرستانهای شهر انتخابی در لیست دوم که دوباره از بانک خونده میشه نمایش داده بشه. بانکش رو ایجاد کردم فقط نمیدونم از چه کدی استفاده کنم. خیلی ضروری خواهشا راهنمایی کنید. با تشکر فراوان

hamedarian2009
یک شنبه 15 شهریور 1394, 18:33 عصر
باید با ajax اینکارو بکنید
این اموزش رو ببینید http://fotolia.ir/3177-%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-%D9%85%D8%AD%D8%AA%D9%88%D8%A7-select-jquery-ajax-php/

leila71
دوشنبه 16 شهریور 1394, 17:05 عصر
ممنون از راهنمایی تون ولی این کدا خیلی پیچیده است. من متوجه نمیشم. ضمنا از بانکم استفاه نمیکنه. فکر نکنم کدی که مد نظر منه به این پیچیدگی باشه. ممنون میشم اگه دوستان راهنمایی کنند.

hamedarian2009
دوشنبه 16 شهریور 1394, 19:27 عصر
یک بار به صورت ساده تر این کارو من انجام دادم بهتره اینجا بزارم دوستان استفاده کنند

یک فایل برای نمایش سلکت باکس ها به این صورت داشته باشید :


<?php
require 'db.php';
$stmt = $pdo->prepare('SELECT * FROM `province`');
$stmt->execute();
$provinces = $stmt->fetchAll();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div>
<select id="province">
<option selected>لطفا استان خود را انتخاب کنید</option>
<?php
foreach ($provinces as $province) {
echo '<option value="'.$province['id'].'"> '. $province['name'].'</option>'.PHP_EOL;
}
?>
</select>
</div>
<div class="city">
</div>
<script src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function (){
$('#province').change(function (){
$.post('ajax.php', {province_id: $(this).val()}, function(data) {
/*optional stuff to do after success */
$('.city').html(data);
});
})
});
</script>
</body>
</html>


فایل db.php برای هم اتصال به دیتابیس جداگانه نوشتم که به صفحه require کردیم :


<?php
$pdo = new PDO('mysql:host=localhost;dbname=iran_cities;chars et=utf8', 'root', '123456');


یک فایل ajax.php هم برای عملیات ajax ایجاد کنید :


<?php
require 'db.php';

$stmt = $pdo->prepare('SELECT * FROM `city` WHERE `province_id` = :id');
$stmt->bindParam('id', $_POST['province_id'], PDO::PARAM_INT);
$stmt->execute();
$cities = $stmt->fetchAll();

$html = '<select id="city">'.PHP_EOL;
foreach ($cities as $city) {
$html .= '<option value="'. $city['id'] .'">'. $city['name'] .'</option>'.PHP_EOL;
}
$html .= '</select>'.PHP_EOL;

echo $html;


من از PDO برای کار با بانک استفاده کردم که شما می تونید به روش های دیگری که استفاده می کنید هم کار کنید. در ضمن فایل jquery.js را هم حتما از وبسایت jquery دانلود و به صفحه ضمیمه کنید.

دیتابیس برنامه هم این (http://uplod.ir/grtrobp8y1fp/iran_cities.sql.zip.htm) می باشد . امیدوارم که بتونید از آن الگو بگیرید