tags:

views:

51

answers:

2

I’m having trouble getting a AJAX/JSON function to work correctly. I had this function grabbing value from a drop down box but now I want to use an anchor tag to set it's value.

I thought it would be easy to just use the onClick event to pass string to the function I was using for the drop down box but it doesn’t do anything. I’m stumped! Here how I set it up:

1st I add an onClick event…

<a href="<?php echo Settings::get('app.webroot'); ?>?view=schedule&action=questions" onmouseout="MM_swapImgRestore();" onmouseover="MM_swapImage('bre','','template/images/schedule/bre_f2.gif',1) onclick="assignCallType('testing')";>

2nd I check main.js.php

function assignCallType(type) {
        alert(type); //just for debugging
        new Request.JSON({
            url: "ajax.php", 
            onSuccess: 
                function(rtndata,txt){
                    if (rtndata['STATUS'] != 'OK') 
                        alert('Error assigning call type to call');
                },
            onFailure: 
                function (xhr) {
                    alert('Error assigning call type to call');
                }
        }).get({
            'action': 'assignCallType', 
            'call_type': type
        });    
    }

3rd Ajax.php: the variable is back in PHP and values don’t get added to the db, but I also didn’t get the alert from main.js.php

if ($_GET['action'] == "assignCallType") {
    if ($USER->isInsideSales()) {
        $call_type = $_GET['call_type'];
        $_SESSION['callinfo']->setCallType($call_type);
        $_SESSION['callinfo']->save($callid);
        echo json_encode(array('STATUS'=>'OK'));
    } else {
        echo json_encode(array('STATUS'=>'DENIED'));
    }
}

Any idea where I am going wrong. The only difference between this and the working drop down is how the function was called, I used onchange="assignCallType(this.value)".

A: 

In your anchor you have a misplaced semi colon:

... onclick="assignCallType('testing')";>

Which may be causing you issues.

zaf
A: 

You've missed a "

   onmouseover="MM_swapImage('bre','','template/images/schedule/bre_f2.gif',1) 

should have a " at the end

Tim
You were right! Now I get the alert but JSON request returns the error message in onFailure.
Mikey1980
Cool :)That bit's a whole new kettle of fish! Submit a new question for that one to make it clear what you're after etc. and get more developers looking into it. Have you considered jQuery's get/post methods, though?
Tim
UPDATE: even though it returns an error, the data is in mysql?? hmmm.. any idea?
Mikey1980