【发布时间】:2014-04-11 05:21:45
【问题描述】:
我正在创建一个视图,其中三个下拉菜单将起作用
在选择角色时,请求服务器而不是另一个下拉列表中的名称而不是请求服务器
,选择数据并在视图中为用户日志生成一个新表。
我已经编写了代码,但它不起作用。
user_activities.ctp
<script type="text/javascript">var myBaseUrl = '<?php echo $this->base; ?>'
var serverName='<?php echo $_SERVER['SERVER_NAME'];?>';
function getname(name) {
var strURL=myBaseUrl+('/manageUsers/userActivities/')+name;
function getXMLHTTP() {
var x = false;
try {
x = new XMLHttpRequest();
}catch(e) {
try {
x = new ActiveXObject("Microsoft.XMLHTTP");
}catch(ex) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e1) {
x = false;
}
}
}
return x;
}
var req = getXMLHTTP();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
document.getElementById('manageUsersName').innerHTML=req.responseText;
} else {
alert("Problem while using XMLHTTP:\n" + req.statusText);
}
}
}
req.open("GET", strURL, true);
req.send(null);
}
}
</script>
<script type="text/javascript">
$(document).ready(function(){
$('#manageUsersRole').change(function(){
var selectedValue = $(this).val();
//var id=fieldName = $(this).attr('id');
getname(selectedValue);
$.ajax({
type : "POST",
url : myBaseUrl+('/manageUsers/userActivities/')+selectedValue, //pass query
string to server
success : function(opt)
{
document.getElementById('manageUsersName').innerHTML = opt;
}
})
});
});
</script>
<?php echo $this->Form->create('manageUsers');
$role = array('admin' => 'Admin', 'driver' => 'Driver');
echo $this->Form->input('role',array('type' => 'select', 'options' =>
$role,'label' => 'Select User Type','default' => 'driver'));
echo $this->Form->input('name',array('type' => 'select','options'=>$userList,
'label' => 'Select User name'));
?>
I don't know if url is generating true or not How can I check????
and what data is coming from function
public function userActivities($role=NULL)
{
$this->loadModel('ActivityLog');
$userLists = $this->ActivityLog->find('list', array(
'fields' => array('ActivityLog.user_name'),
'conditions' => array('ActivityLog.role =' => $role)
));
$userList=array();
foreach($userLists as $key=>$value )
{
$userList[$value]=$value;
}
$this->set('userList',$userList);
}
请求正在服务器上进行。我已经检查过萤火虫。改变是有效的 但是第二个下拉菜单中没有任何响应。只有两个值 第一个下拉菜单在第二个下拉菜单中重复。你能建议一些改变吗?
【问题讨论】:
-
您在网络选项卡和控制台中遇到什么错误?
-
你认为我的代码有效吗?我收到错误 ReferenceError: getXMLHTTP is not defined var req = getXMLHTTP();
-
我现在在顶部添加了这个函数 function getXMLHTTP() { var x = false;尝试 { x = new XMLHttpRequest(); }catch(e) { 尝试 { x = new ActiveXObject("Microsoft.XMLHTTP"); }catch(ex) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } 捕捉(e1){ x = 假; } } } 返回 x; }