مشکل با POST کردن مقدار Select در jQuery
من برای ارسال مقدار 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>
میشه اشکالش رو به من بگید؟ :متفکر:
متشکرم :بوس:
نقل قول: مشکل با POST کردن مقدار Select در jQuery
سلام.
کدی که نوشته اید با 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 حذف کنید.
موفق باشید.