我在Ajax/JSON函数上遇到了一点问题......我想用这个函数从下拉框中获取值,并使用一个锚标记来设置它的值。
我一直以为使用onClick事件将字符串传递给用于下拉框的函数是很容易的,而且数据也被成功添加到了MySQL中,但是我却在JSON onFailure事件中得到了警报。我试着从onFailure事件中删除警报,但是它就不添加数据了。没有警报的时候,下拉框会继续工作,且运行正常。(注意,删除警报也破坏了我的下拉框)。
第一,添加onClick事件…
<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')";>
第二,检查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
});
}
第3,Ajax.php:变量返回PHP,值被添加到MySQL中,但我在JSON onFailure事件中得到了警报:
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'));
}
}
究竟哪里出错了?这与工作下拉列表之间唯一的区别是在函数调用上,我使用的是onchange="assignCallType(this.value)"。