JSON onFailure issue

Posted by Mikey1980 on Stack Overflow See other posts from Stack Overflow or by Mikey1980
Published on 2010-04-26T15:57:49Z Indexed on 2010/04/26 17:03 UTC
Read the original article Hit count: 210

Filed under:
|
|
|

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 I get the alert in JSON onFailure event even though data gets added to MySQL. I tried removing the alert from onFailure event but then it doesn't add the data. The drop down still continues work work fine, no alerts. (I should note that removing the alert also broke my drop down box)

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);
    new Request.JSON({
        url: "ajax.php", 
        onSuccess: 
            function(rtndata,txt){
                if (rtndata['STATUS'] != 'OK') 
                    alert('Status was not okay');
            },
        onFailure : 
            function () { 
            alert("onFailure") 
            }
    }).get({
        'action': 'assignCallType', 
        'call_type': type
    });    
}

3rd Ajax.php: the variable is back in PHP and values get added to MySQL but I get the Alert in the JSON onFailure event

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)".

© Stack Overflow or respective owner

Related posts about JSON

Related posts about AJAX