# زبان های اسکریپتی > JavaScript و Framework های مبتنی بر آن > jQuery > سوال: مشکل با POST کردن مقدار Select در jQuery

## LORD AELX

من برای ارسال مقدار 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

سلام.
کدی که نوشته اید با 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 حذف کنید.

موفق باشید.

----------

