【发布时间】:2010-04-26 15:57:49
【问题描述】:
我无法让 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
});
}
3rd 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)"。
【问题讨论】: