1

I am working on a function, where if a user selects a value from a drop down list, then this calls an AJAX function, which then should get me a list of Names and their email addresses

$.ajax({
                type:'POST',
                url:'get_distusers.php',
                data:'dist_id='+dist_id+'&study_id='+study_id,
                success: function(data){

                    $('#dist_list2').html(data);
                    $('#dist_list').val(data);

                },
                    error : function(XMLHttpRequest, textStatus, errorThrown) {
                        alert("There was an error."+textStatus+" - " + XMLHttpRequest.status);
                    }
            });

Then the other page has this to send back the list of names and emails

unset($contact);
if ($count_du>0) {
    while($row_du = mysqli_fetch_array($result_du)) {
        if(!empty($contacts)) 
            $contacts.="<br>, ";

            $contact['name']=$row_du[0];
            $contact['email']=$row_du[1];
    }
}

$contacts[]=$contact;
//$contacts=array($contact_email,$contact_name);

//echo $sql_patrand;
echo json_encode($contacts);

However, when I try to retrieve the contact list, I either get the word object or nothing.

Can someone tell me what I am doing wrong?

3
  • data is a JSON object, not HTML. You can't directly output it to the page like that, you'd need to extract the data you want from the object and put that data in the page elements. Commented Jun 21, 2017 at 16:55
  • I did this, but now when I try to parse the json var json_obj = $.parseJSON(data);//parse JSON - I get an error message "SyntaxError: JSON Parse error: Unexpected identifier "object"" , but the log shows me that the output looks like [{name: ["Jon Doe"],Email:["[email protected]"]}] Commented Jun 21, 2017 at 18:09
  • Sounds like data is an object, not a string. In which case you don't have to parse it, it's already in the format you need. Commented Jun 21, 2017 at 18:12

1 Answer 1

1

You have return echo json_encode($contacts); json format from the your php code, but your ajax not understand json format because you have not set dataType: 'json' param, Please check the below mention code, it will defiantly helpful, any query comment inside answer....

$.ajax({
    type:'POST',
    url:'get_distusers.php',
    data:'dist_id='+dist_id+'&study_id='+study_id,
    dataType: 'json', //NOTE:Your missing point - update first
    success: function(data){
        console.log(data); //Print your data, so it will help you to how manage
        $('#dist_list2').html(data);
        $('#dist_list').val(data);

    },
        error : function(XMLHttpRequest, textStatus, errorThrown) {
            alert("There was an error."+textStatus+" - " + XMLHttpRequest.status);
        }
});
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.