PDA

View Full Version : اجرای یک کد jquery در دو قسمت از فرم



baran.f.a
دوشنبه 01 دی 1393, 11:02 صبح
سلام من یک صفحه فرم طراحی کردم . این صفحه دارای چهار combobox است . که هر دو به صورت دوتایی با هم در ارتباطن و هر چهر تا اطلاعات خودشونو از sql می گیرن . روال فراخوانی از sql به این صورت هست که وقتی داده ای رو از combobox اولیه می خونم فقط اطلاعات همون داده در combobox اولیه نمایش داده بشه . من این کارو انجام دادم و مشکلی نداشتم مشکلم اینه که combobox سوم و چهارم کار نمی کنن . می دونم باید تو کد java تغییراتی ایجاد کنم که بتونه یه کد رو در دو قسمت اجرا کنه عکس و کد رو براتون می زارم .

126788



<script language="javascript" type="text/javascript">
function showCompany(pspproject) {
document.frm.submit();
}
</script>

<label>شرکت PSP : </label>
&nbsp;&nbsp;&nbsp;

<?php
require_once 'connect.php';
connecttodb();
mysql_query('SET NAMES utf8');
$sql1="select * from psp where psp_project='0' ";
?>
<select name="psp_project" id="psp_project" onChange="showCompany(this.value);" style="width:100px;" >
<option value=""></option>
<?php
$sql_row1=mysql_query($sql1);
while($sql_res1=mysql_fetch_assoc($sql_row1)){
?>
<option value="<?php echo $sql_res1["id"]; ?>" <?php if($sql_res1["id"]==$_REQUEST["psp_project"]) { echo "Selected"; } ?> >
<?php echo $sql_res1["psp_name"]; ?></option>
<?php
}
?>
</select>

<label>پروژه :</label>&nbsp;&nbsp;&nbsp;&nbsp;
<select name="company_id" id="company_id" style="width:100px;" >
<option value=""></option>
<?php
require_once 'connect.php';
connecttodb();
mysql_query('SET NAMES utf8');
$sql="select * from psp where psp_project='$_REQUEST[psp_project]'";
$sql_row=mysql_query($sql);
while($sql_res=mysql_fetch_assoc($sql_row)){
?>
<option value="<?php echo $sql_res["id"]; ?>"><?php echo $sql_res["psp_name"]; ?></option>
<?php
}
?>
</select>




در این تصویر وقتی من نام یه شرکت psp رو انتخاب می کنم فقط پروژه های همون شرکت رو به من نمایش می ده . حالا می خوام وقتی گروه یه پایانه رو مشخص می کنم فقط مدل ای مربوط به همون پایانه را نمایش بده.

hamedarian2009
دوشنبه 01 دی 1393, 11:36 صبح
اگه این کدی که نوشتی کار میکنه خب برای اون دوتا دیگه همین کدو تکرار کن فقط کد sql رو باید عوض کنی
ولی بهتره از AJAX استفاده کنید

baran.f.a
دوشنبه 01 دی 1393, 11:40 صبح
خوب من این کدو امتحان کردم کار نکرد نباید تو قسمت اسکریپتش به غیر از تغییر نام id کاری انجام بدم ؟

hamedarian2009
دوشنبه 01 دی 1393, 12:00 عصر
با ای جکس انجام بدین بهتره مخایین یه نمونه کد براتون بزارم؟

baran.f.a
دوشنبه 01 دی 1393, 12:03 عصر
خیلی ممنون می شم اگه این لطفو بکنین .

hamedarian2009
دوشنبه 01 دی 1393, 12:25 عصر
<select id="company">
<option value="">Select a project:</option>
<option value="1">company1</option>
<option value="2">company2</option>
<option value="3">company3</option>
</select>
<select id="project">

</select>
<br>
<select id="group">
<option value="">Select a group:</option>
<option value="1">group1</option>
<option value="2">group</option>
<option value="3">group2</option>
</select>
<select id="model">

</select>

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
(function(){
$('#company').on('change', function(){
$.ajax({
type: 'POST',
url: 'data.php',
data: {
cid: $('#company').val(),
},
success: function(data){
$('#project').html(data);
}
});
});
$('#group').on('change', function(){
$.ajax({
type: 'POST',
url: 'data.php',
data: {
gid: $('#group').val(),
},
success: function(data){
$('#model').html(data);
}
});
});
})();
</script>


یک صفحه data.php هم باید داشته باشی که با توجه به id که اونطرف میره بتونی از دیتابیس اطلاعات موردنظرتو بخونی


if(isset($_POST['cid'])){
//az database khande shavad
echo '<option value="1">project123</option>';
}
elseif(isset($_POST['gid'])) {
//az database khande shavad
echo '<option value="1">model2014</option>';
}


فقط یک نکته آدرس فایل جی کوئری من در کنار فایل های دیگم بود شما آدرس دهی رو طبق پروژه خودتون انجام بدین

<script type="text/javascript" src="jquery.js">

baran.f.a
سه شنبه 02 دی 1393, 09:20 صبح
خیلی ممنون:لبخندساده:

hamedarian2009
سه شنبه 02 دی 1393, 09:28 صبح
خیلی ممنون:لبخندساده:

خواهش میکنم البته دکمه تشکر هم برای همین منظور گزاشته شده

baran.f.a
چهارشنبه 03 دی 1393, 09:11 صبح
خواهش میکنم البته دکمه تشکر هم برای همین منظور گزاشته شده

آخ آخ بله حق با شماست اصلا یادم رفت :خجالت:

فقط ببخشید آقای hamedarian2009 این کدی که شما نوشتین نام شرکت و پروژه را از دیتابیس نمی گیره درسته ؟ ولی من می خوام همه ی اطلاعات رو از دیتابیس بخونه چون من فرم هایی دارم که شرکت های جدید و یا مدل های جدید اضافه می شه .

MMSHFE
چهارشنبه 03 دی 1393, 09:49 صبح
روش کار رو ایشون گفتن. شما کافیه همین کدها رو با PHP تولید کنید و مقادیر رو از دیتابیس بخونید و درج کنید. اگه میخواین با تغییر یک DropDownList آیتمهای یکی دیگه دوباره از دیتابیس خونده بشه هم باید از AJAX استفاده کنید. ضمناً سؤالاتی که به PHP مربوط نمیشه رو تو این تالار مطرح نکنید و از تالار «طراحی وب» یا «Javascript و Framework های مبتنی بر آن» استفاده کنید.

hamedarian2009
چهارشنبه 03 دی 1393, 09:49 صبح
آخ آخ بله حق با شماست اصلا یادم رفت :خجالت:

فقط ببخشید آقای hamedarian2009 این کدی که شما نوشتین نام شرکت و پروژه را از دیتابیس نمی گیره درسته ؟ ولی من می خوام همه ی اطلاعات رو از دیتابیس بخونه چون من فرم هایی دارم که شرکت های جدید و یا مدل های جدید اضافه می شه .
توی کامنت نوشتم از دیتابیس خوانده شود من فقط ای جکس رو براتون پیاده سازی کردم دیگه بقیش کاری نداره یه اتصال به دیتابیس بزنین و اطلاعات رو از جدولتون واکشی کنید و با حلقه foreach نمایش بدین این قسمتش رو بعهده خودتون گزاشتم

reza430
پنج شنبه 04 دی 1393, 22:55 عصر
سلام کدی که شما نوشتید موقعی کار می کنه که فقط دو دراپ دان با هم ارتباط دارند . اما اگه ما 3 دراپ دان داشته باشیم که دومی به مقدار اولی و سومی به مقدار اولی و دومی بستگی داشته باشد را باید چگونه نوشت .




<select id="company">
<option value="">Select a project:</option>
<option value="1">company1</option>
<option value="2">company2</option>
<option value="3">company3</option>
</select>
<select id="project">

</select>
<br>
<select id="group">
<option value="">Select a group:</option>
<option value="1">group1</option>
<option value="2">group</option>
<option value="3">group2</option>
</select>
<select id="model">

</select>

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
(function(){
$('#company').on('change', function(){
$.ajax({
type: 'POST',
url: 'data.php',
data: {
cid: $('#company').val(),
},
success: function(data){
$('#project').html(data);
}
});
});
$('#group').on('change', function(){
$.ajax({
type: 'POST',
url: 'data.php',
data: {
gid: $('#group').val(),
},
success: function(data){
$('#model').html(data);
}
});
});
})();
</script>


یک صفحه data.php هم باید داشته باشی که با توجه به id که اونطرف میره بتونی از دیتابیس اطلاعات موردنظرتو بخونی


if(isset($_POST['cid'])){
//az database khande shavad
echo '<option value="1">project123</option>';
}
elseif(isset($_POST['gid'])) {
//az database khande shavad
echo '<option value="1">model2014</option>';
}


فقط یک نکته آدرس فایل جی کوئری من در کنار فایل های دیگم بود شما آدرس دهی رو طبق پروژه خودتون انجام بدین

<script type="text/javascript" src="jquery.js">

MMSHFE
جمعه 05 دی 1393, 10:41 صبح
شما همین ایده رو باید توسعه بدین و درصورت تغییر لیست دوم، سومی رو باز با AJAX پر کنید. قرار نیست سورس آماده تحویل بدیم. اینجا همه کمک میکنن که خودتون یاد بگیرین و کار رو انجام بدین.

hamedarian2009
جمعه 05 دی 1393, 10:59 صبح
سلام کدی که شما نوشتید موقعی کار می کنه که فقط دو دراپ دان با هم ارتباط دارند . اما اگه ما 3 دراپ دان داشته باشیم که دومی به مقدار اولی و سومی به مقدار اولی و دومی بستگی داشته باشد را باید چگونه نوشت .
اگه یکم روش فکر کنید باید بتونین انجامش بدین دیگه مسئله تقریبا حل شده

baran.f.a
یک شنبه 07 دی 1393, 09:17 صبح
اگه یکم روش فکر کنید باید بتونین انجامش بدین دیگه مسئله تقریبا حل شده

سلام منم همچین مشکلی دارم یعنی می خواستم از دو تا به سه تا دراپ دان بسط بدم روی کدم تغییراتی دادم ولی بازم به نتیجه نمی رسم .



<label>گروه :</label>&nbsp;&nbsp;&nbsp;&nbsp;

<select name="pos_model" id="pos_model" style="width:130px;" >
<option value=""></option>
<?php
require_once 'connect.php';
connecttodb();
mysql_query('SET NAMES utf8');
$sql2="select * from `pos_model` where `pos_model`='0' ";
$sql_row2=mysql_query($sql2);
while($sql_res2=mysql_fetch_assoc($sql_row2)){
?>
<option value="<?php echo $sql_res2["model_id"]; ?>" > <?php echo $sql_res2["pos_group"]; ?></option>
<?php
}
?>
</select>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<label>مدل :</label> &nbsp;&nbsp;&nbsp;

<select name="model_id" id="model_id" style="width:130px;">

</select>



&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<label>نوع تجهیزات :</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<select name="equipment_id" id="equipment_id" style="width:130px;" >

</select>
<script type="text/javascript">
(function(){

$('#pos_model').on('change', function(){
$.ajax({
type: 'POST',
url: 'psp.php',
data: {
gid: $('#pos_model').val(),
},
success: function(data){
$('#model_id').html(data);
},
error: function(){
alert('error');
}
});
});
$('#model_id').on('change', function(){
$.ajax({
type: 'POST',
url: 'psp.php',
data: {
eid: $('#model_id').val(),
},
success: function(data){
$('#equipment_id').html(data);
},
error: function(){
alert('error');
}
});
});
})();
</script>



اینم کد psp.php



<?php
session_start();
if(isset($_POST['cid'])){
$cid=$_POST['cid'];
require_once 'connect.php';
connecttodb();
mysql_query('SET NAMES utf8');
$sql="select * from `psp` where `psp_project` = '".mysql_real_escape_string($cid)."' ";
$rs = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_array($rs)){

echo "<option value='".$row["id"]."'>".$row["psp_name"]."</option>";
$row = mysql_fetch_assoc($rs);
$_SESSION['project_id']=$row['id'];
$_SESSION['psp_name']=$row["psp_name"];
}
}
elseif(isset($_POST['gid'])) {
//az database khande shavad
$gid=$_POST['gid'];
require_once 'connect.php';
connecttodb();
mysql_query('SET NAMES utf8');
$sql="select * from `pos_model` where `pos_model` = '".mysql_real_escape_string($gid)."' ";
$rs = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_array($rs)){

echo "<option value='".$row["model_id"]."'>".$row["pos_group"]."</option>";
$row = mysql_fetch_assoc($rs);
$_SESSION['model_id']=$row['model_id'];

}

}
elseif(isset($_POST['eid'])) {
//az database khande shavad
$eid=$_SESSION['id'];
require_once 'connect.php';
connecttodb();
mysql_query('SET NAMES utf8');
$sql="select * from `pos_model` where `pos_model` = '".mysql_real_escape_string($eid)."' ";
$rs = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_array($rs)){

echo "<option value='".$row["model_id"]."'>".$row["pos_group"]."</option>";
$row = mysql_fetch_assoc($rs);
$_SESSION['model_id']=$row['model_id'];

}

}

?>




ممنون می شم اگه کمکم کنید من چیزی از jqery سر در نمیارم.