View Full Version : سوال: دلیل عدم نمایش رکوردهای موجود در ComboBox هنگام اجرای کد در localhost
poorya4892
سه شنبه 27 اردیبهشت 1390, 10:07 صبح
من يك sample از اينجا (http://www.99points.info/2010/06/ajax-tutorial-dynamic-loading-of-combobox-using-jquery-and-ajax-in-php/)دانلود كردم كه داده هاي كمبو باكس رو از جدول ميخونه و نسبت به اون داده مبوباكس هاي بعدي رو نمايش ميده.
اما زمانيكه اومدم روي لوكال آزمايش كنم، هيچ داده اي از جدول، توي كمبوباكس نمايش داده نميشه.
مشكل كجاست؟ ( جدول هم پر كردم )
alismith
سه شنبه 27 اردیبهشت 1390, 10:20 صبح
سلام دوست عزیز
من vpn نداشتم نتونستم فایل رو دانلود کنم شما فایل رو تو تاپیک قرار بده تا بررسی کنیم مشکل کجاست
البته تو خود سایت تو بخش demo وفقتی خود source رو دیدم در اونجا ایتمی که از combobox اولی انتخاب می شد رو به این صفحه می فرستاد get_chid_categories.php شما چک کنید ببینید صفحه مقصدی که قرار این اطلاعات رو بگیره و خروجی رو برگردونه همین نام رو داره یا نه
موفق باشید
poorya4892
سه شنبه 27 اردیبهشت 1390, 11:27 صبح
فايل رو پيوست كردم
alismith
سه شنبه 27 اردیبهشت 1390, 12:26 عصر
سلام
در اینجا شما باید id ایتم اول که parrent هستش رو به فیلد pid مقادیری که در این رسته کنجانده می شوند قرار دهید
مثلا:
70030
موفق باشید
poorya4892
سه شنبه 27 اردیبهشت 1390, 12:33 عصر
مثال شما رو وارد جدول كردم ولي باز هم ژيزي نمايش نميده توي كمبوباكس. امكانش هست سورس رو به همراه export بانك رو برام بفرستين؟
alismith
سه شنبه 27 اردیبهشت 1390, 12:47 عصر
این دیتابیس friends با جدول نمونه هستش :
70031
موفق باشید
poorya4892
سه شنبه 27 اردیبهشت 1390, 12:55 عصر
باز هم نمايش نميده! سورس هم بدين تا ببينم مشكلم كجاست دقيقا. ممنون
alismith
سه شنبه 27 اردیبهشت 1390, 13:04 عصر
دوست من ما در اینجا کاری به سورس نداریم فقط جدول رو تنظیم می کنیم اگه می خواین می تونید یک DB به نام friends در phpMyAdmin بسازید و جدول رو مانند نمونه خود سایت وارد کنید :
CREATE TABLE IF NOT EXISTS `ajax_categories` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`category` varchar(50) NOT NULL,
`pid` int(11) NOT NULL,
PRIMARY KEY (`id`)
)
در بخش sql این کار رو انجام بدید
و در آخر مقادیر جدول رو مطابق عکسی که براتون فرستادم پر کنید
موفق باشد
poorya4892
سه شنبه 27 اردیبهشت 1390, 13:12 عصر
دقيقا تمام مراحلي كه فرمودين انجام دادم اما فقط يك كمبو خالي مياد. همين!
alismith
سه شنبه 27 اردیبهشت 1390, 13:24 عصر
اگه هر دوتا comboBox خالی هستند پس شاید شما به mysql وصل نیستید
تو فایل dbcon.php ببینید نام db رو مطابق frineds قرار داده یا نه؟
poorya4892
سه شنبه 27 اردیبهشت 1390, 13:28 عصر
يك كمبو باكس فقط نمايش ميده.
خروجي گرفتم كه در صورت عدم اتصال ارور بده ولي هيچي نمياد!
alismith
سه شنبه 27 اردیبهشت 1390, 13:28 عصر
این مقادیر رو جایگزین کنید :
<?php
$link = mysql_connect('localhost','root','') or die(mysql_error());
@mysql_select_db('friends',$link) or die(mysql_error());
?>
poorya4892
سه شنبه 27 اردیبهشت 1390, 13:35 عصر
يك كمبو باكس نمايش ميده.
من خروجي گرفتم از دستور اتصال اما هيچ پيغامي نميده
poorya4892
سه شنبه 27 اردیبهشت 1390, 13:40 عصر
متوجه شدم.
من از uwamp استفاده ميكنم و يوزر root پسورد داشت.
ممنون درست شد.
حالا اگر بخوام مقادير وارد يك جدول ديگه بشه به چه صورت بايد عمل كنم؟يعني بعد از انتخاب كمبو ها نهايتا داده ها وارد يك جدول ديگه بشن
alismith
سه شنبه 27 اردیبهشت 1390, 13:44 عصر
خوب می تونید با یک دستور insert و ارسال query به جدول مورد نظر در صفحه get_chid_categories.php این کا رو انجام بدید
alismith
سه شنبه 27 اردیبهشت 1390, 13:52 عصر
به اینگونه عمل کنید :
<?php
while ($rows = mysql_fetch_assoc(@$results))
{?>
<option value="<?php echo $rows['category'];?> ID=<?php echo $rows['id'];?>"><?php echo $rows['category'];?></option>
<?php
$sql="INSERT INTO 'newTable'(id,category,pid) VALUES ($rows['id'],'$rows['category']',$rows['pid'])";
mysql_query($sql);
}?>
موفق باشید
alismith
سه شنبه 27 اردیبهشت 1390, 15:33 عصر
حالا اگر بخوام مقادير وارد يك جدول ديگه بشه به چه صورت بايد عمل كنم؟يعني بعد از انتخاب كمبو ها نهايتا داده ها وارد يك جدول ديگه بشن
یک فایل به نام done.php به پروژه اضافه کنید و این دستورات را در آن بنویسید :
<?php
include('dbcon.php');
$id = $_POST['id'];
if(isset($id)){
$sql1="select * from ajax_categories WHERE `id`= $id";
$result = mysql_query($sql1);
$total = mysql_num_rows($result);
if($total==1){
$row = mysql_fetch_array($result);
$r_id = $row['id'];
$r_cat = $row['category'];
$r_pid = $row['pid'];
$sql2 = "INSERT INTO `newTable` (id,category,pid) VALUES ($r_id,'$r_cat',$r_pid)";
mysql_query($sql2);
}
print "$r_cat saved in newTable";
}
?>
در اینجا newTable نا جدول جدیدی هست که در بانک friends درست کردید که سه فیلد دارد
در آخر فایل index.php نیز این گونه می شود :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ajax Tutorial: Dynamic Loading of ComboBox using jQuery and Ajax in PHP</title>
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#loader').hide();
$('#show_heading').hide();
$('#search_category_id').change(function(){
$('#show_sub_categories').fadeOut();
$('#loader').show();
$.post("get_chid_categories.php", {
parent_id: $('#search_category_id').val(),
}, function(response){
setTimeout("finishAjax('show_sub_categories', '"+escape(response)+"')", 400);
});
return false;
});
});
function finishAjax(id, response){
$('#loader').hide();
$('#show_heading').show();
$('#'+id).html(unescape(response));
$('#'+id).fadeIn();
}
function alert_id()
{
if($('#sub_category_id').val() == '')
alert('Please select a sub category.');
else
var sendData = $('#sub_category_id').val();
$.ajax({
type: 'post',
url: 'done.php',
data: 'id=' + sendData,
success: function(data){
$("#container").ajaxComplete(function(event, request, settings){
$("#container").html(data);
});
},
error: function(){
alert('Error');
}
});
return false;
}
</script>
<style>
.both h4{ font-family:Arial, Helvetica, sans-serif; margin:0px; font-size:14px;}
#search_category_id{ padding:3px; width:200px;}
#sub_category_id{ padding:3px; width:200px;}
.both{ float:left; margin:0 15px 0 0; padding:0px;}
</style>
</head>
<?php
include('dbcon.php');?>
<body>
<h1>Dynamic Loading of ComboBox using jQuery and Ajax in PHP </h1>
<br clear="all" /><br clear="all" /><br clear="all" />
<div style="padding-left:30px;">
<form action="#" name="form" id="form" method="post" onsubmit="return alert_id();" enctype="multipart/form-data">
<div class="both">
<h4>Select Category</h4>
<select name="search_category" id="search_category_id">
<option value="" selected="selected"></option>
<?php
$query = "select * from ajax_categories where pid = 0";
$results = mysql_query($query);
while ($rows = mysql_fetch_assoc(@$results))
{?>
<option value="<?php echo $rows['id'];?>"><?php echo $rows['category'];?></option>
<?php
}?>
</select>
</div>
<div class="both">
<h4 id="show_heading">Select Sub Category</h4>
<div id="show_sub_categories" align="center">
<img src="loader.gif" style="margin-top:8px; float:left" id="loader" alt="" />
</div>
</div>
<br clear="all" /><br clear="all" />
<input type="submit" name="" value="save" />
</form>
<br/><br/>
<div id="container" style="width: 200px; height: 100px; border: 1px solid #000;"></div>
</div>
<br clear="all" /><br clear="all" /><br clear="all" />
<br clear="all" /><br clear="all" /><br clear="all" />
<br clear="all" /><br clear="all" />
<br clear="all" /><br clear="all" /><br clear="all" />
<br clear="all" /><br clear="all" /><br clear="all" />
</body>
</html>
در فایل get_chid_categories.php این دستورات را جایگزین کنید :
<?php
include('dbcon.php');
if($_REQUEST)
{
$id = $_REQUEST['parent_id'];
$query = "select * from ajax_categories where pid = ".$id;
$results = mysql_query( $query);?>
<select name="sub_category" id="sub_category_id">
<option value="" selected="selected"></option>
<?php
while ($rows = mysql_fetch_assoc(@$results))
{?>
<option value="<?php echo $rows['id'];?>"><?php echo $rows['category'];?></option>
<?php
}?>
</select>
<?php
}
?>
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.