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