user3004356
user3004356

Reputation: 880

Passing arguments in jquery ajax resulting in undefined

I'm new to jQuery. I'm creating a cascading dropdown using jquery ajax. So based on the changed value of first dropdown, the second script fetches values from database from second dropdown.

<script>
$(document).ready(function () {
    $("#builder_group").change(function () {
        var selected_builder = $(this).val();
        alert(selected_builder);
        $.ajax({
            type: 'POST',
            url: 'getGroupzCode.php',
            data: 'selected_builder',
            datatype: 'json',
            success: function (data) {
                // Call this function on success                
                console.log(data);
                var yourArray = JSON.parse(data);
                console.log(yourArray);
                $.each(yourArray, function (index, yourArray) {
                    $('#builder_group1').append($('<option/>', {
                        value: yourArray.id,
                        text: yourArray.name,
                    }));
                });
            },
            error: function () {
                displayDialogBox('Error', err.toString());
            }
        });
    });
});
</script>

Problem is when I alert the selected value from first dropdown it works i.e alert(selected_builder) works , but when I try to pass it to the script it is showing as undefined in PHP script. How can I solve this.

Upvotes: 1

Views: 1171

Answers (5)

Brett Weber
Brett Weber

Reputation: 1907

When passing as a json string (for sending using jQuery ajax), let native javascript stuff do it for you. Pass your data as a correct JSON string to be interpreted by your target.

data  : JSON.stringify({ selected_builder : selected_builder})

This will allow your receiving method to get the data as a parameter named selected_builder.

Upvotes: 1

sunil
sunil

Reputation: 701

data: 'selected_builder'+data

It should be key value pair

Upvotes: 1

Hassan Raza
Hassan Raza

Reputation: 3165

Pass the variable name instead of string.

data: selected_builder,

Upvotes: 1

William Barbosa
William Barbosa

Reputation: 4995

You're passing a string as your data. Try passin selected_builder without the surrounding ', like this:

 data: selected_builder,

Upvotes: 1

isherwood
isherwood

Reputation: 61063

Don't pass it as a string.

data: selected_builder,

Upvotes: 1

Related Questions