PDA

View Full Version : سوال: مشکل با POST کردن مقدار Select در jQuery



LORD AELX
سه شنبه 19 مرداد 1389, 19:14 عصر
من برای ارسال مقدار SELECT توسط jQuery به سرور پس از تغییر آن (onchange) از کد زیر استفاده کرده ام ولی کار نمی کند (!) :


<!DOCTYPE html>
<html>
<head>
<script language="javascript" src="jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
function getA(name) {
$.post('index.php', {a: name});
}
});
</script>
</head>
<body>
<p>
<select name="a" onchange="if(this.value != '/') getA(this.value);">
<option value="/" selected="selected">/</option>
<?php
$result = @mysql_query("SELECT * FROM aaa GROUP BY aaaname");
while($row = @mysql_fetch_array($result)) {
echo "<option value=\"$row[aaaname]\">$row[aaaname]</option>";
}
?>
</select>
</p>
<p>
<?php
if(isset($_POST['a'])){
$aname = $_POST['a'];
$result = @mysql_query("SELECT * FROM aaa WHERE aaaname = '$aname'");
while($row = @mysql_fetch_array($result)) {
echo "SOME THING... $row[bbbname]";
}
}
?>
</p>
</body>
</html>


میشه اشکالش رو به من بگید؟ :متفکر:

متشکرم :بوس:

mehdi.mousavi
چهارشنبه 20 مرداد 1389, 17:23 عصر
سلام.
کدی که نوشته اید با Unobtrusive JavaScript در تضاد هستش. در حقیقت شما کدهای HTML و JavaScript رو با هم ترکیب کرده اید. کد شما کار نمیکنه، چون function مربوطه رو در scope نادرستی تعریف کرده اید...

روش صحیح انجام این کار (جدا از مساله Namespace ها) این هستش:

$(function () {
$('select').change(function () {
var value = $(this).val();
if (value != '/') {
$.post('index.php', { a: value });
}
});
});


ضمنا این بخش رو


onchange="if(this.value != '/') getA(this.value);"از روی Element خودتون در HTML حذف کنید.

موفق باشید.