如何在onchange事件中传递两个或多个参数
How to pass two or multiple parameters in onchange event
我有一个显示名称的 table,但它的值是它的用户 ID、电子邮件和级别
<?php if (count($users)): ?>
<table class="table table-hover">
<thead>
<tr>
<th>Name</th>
<th>E-mail</th>
<th>Level</th>
<th></th>
</tr>
</thead>
<?php foreach ($users as $user): ?>
<tr>
<td><a href="<?php echo $this->url('user/edit', array('id' => $user->id)); ?>"><?php echo $this->escapeHtml($user->first_name . ' ' . $user->last_name); ?></a></td>
<td><?php echo $this->escapeHtml($user->email); ?></td>
<td>
<select name="level" id= "level" onchange="changeLevel(this);">
<?php $level = $this->escapeHtml($user->level); ?>
<?php if ($level == 1): ?>
<option value="1" selected ="selected">Administrator</option>
<option value="2" <?php IsSelected($level,2); ?>> Manager</option>
<option value="3" <?php IsSelected($level,3); ?>>HR Staff</option>
<?php elseif ($level == 2): ?>
<option value="1" <?php IsSelected($level,1); ?>>Administrator</option>
<option value="2" selected ="selected">Manager</option>
<option value="3" <?php IsSelected($level,3); ?>>HR Staff</option>
<?php elseif ($level == 3): ?>
<option value="1" <?php IsSelected($level,1); ?>>Administrator</option>
<option value="2" <?php IsSelected($level,2); ?>>Manager</option>
<option value="3" selected ="selected">HR Staff</option>
<?php endif; ?>
</select>
</td>
<td style="text-align: right;">
<a href="<?php echo $this->url('user/delete', array('id' => $user->id)); ?>" class="btn btn-mini btn-danger" rel="tooltip" title="Delete this user"><i class="icon-remove icon-white"></i></a>
</td>
</tr>
<?php endforeach; ?>
</table>
<?php else: ?>
<h3>There are no registered users available.</h3>
<?php endif; ?>
目前,我的 select 下拉列表 onchange 事件仅将下拉列表中的 selected 值传递给调用 zend controlr
的 ajax 函数]
这里是ajax函数
<script>
changeLevel = function(level){
var level_value = level.value;
var user_id =
alert(level.value);
$.ajax({
type: "POST",
url: 'http://localhost/ijm/public/user/level',
data: { function_params: level_value },
Success: function(result){
alert('Success');
}
});
}
</script>
这里是用户控制器函数
public function levelAction()
{
$storage = $this->getAuthService()->getStorage();
$user = $storage->read();
$request = $this->getRequest();
$level = $request->getPost('function_params');
echo $level;
// Check if form values are valid
$this->getUserTable()->editLevel($user->id, $level);
$this->redirect()->toRoute('user');
echo "success";
}
我想要的是每次触发 onchange 事件时我还希望将 userId 传递给 onchange 事件函数,以便我可以将它发送到我的 zend 控制器。我怎样才能做到这一点?提前致谢。
您的 select 标签也可以包含用户 ID:
<select name="level" id="level" data-userid="<?=$user->id?>" onchange="changeLevel(this);">
在 changeLevel
函数中,您可以通过以下方式访问它:
changeLevel = function(level){
var level_value = level.value;
var userid = $(level).data('userid');
alert('Value: ' + level.value + ', userid: ' + userid);
$.ajax({
type: "POST",
url: 'http://localhost/ijm/public/user/level',
data: { function_params: level_value, userid: userid },
Success: function(result){
alert('Success');
}
});
}
请检查this Fiddle。
<select name="level" id= "level" onchange="changeLevel(this , '<?php echo $user->id?>');">
...
changeLevel = function(level, user_id){
...
我有一个显示名称的 table,但它的值是它的用户 ID、电子邮件和级别
<?php if (count($users)): ?>
<table class="table table-hover">
<thead>
<tr>
<th>Name</th>
<th>E-mail</th>
<th>Level</th>
<th></th>
</tr>
</thead>
<?php foreach ($users as $user): ?>
<tr>
<td><a href="<?php echo $this->url('user/edit', array('id' => $user->id)); ?>"><?php echo $this->escapeHtml($user->first_name . ' ' . $user->last_name); ?></a></td>
<td><?php echo $this->escapeHtml($user->email); ?></td>
<td>
<select name="level" id= "level" onchange="changeLevel(this);">
<?php $level = $this->escapeHtml($user->level); ?>
<?php if ($level == 1): ?>
<option value="1" selected ="selected">Administrator</option>
<option value="2" <?php IsSelected($level,2); ?>> Manager</option>
<option value="3" <?php IsSelected($level,3); ?>>HR Staff</option>
<?php elseif ($level == 2): ?>
<option value="1" <?php IsSelected($level,1); ?>>Administrator</option>
<option value="2" selected ="selected">Manager</option>
<option value="3" <?php IsSelected($level,3); ?>>HR Staff</option>
<?php elseif ($level == 3): ?>
<option value="1" <?php IsSelected($level,1); ?>>Administrator</option>
<option value="2" <?php IsSelected($level,2); ?>>Manager</option>
<option value="3" selected ="selected">HR Staff</option>
<?php endif; ?>
</select>
</td>
<td style="text-align: right;">
<a href="<?php echo $this->url('user/delete', array('id' => $user->id)); ?>" class="btn btn-mini btn-danger" rel="tooltip" title="Delete this user"><i class="icon-remove icon-white"></i></a>
</td>
</tr>
<?php endforeach; ?>
</table>
<?php else: ?>
<h3>There are no registered users available.</h3>
<?php endif; ?>
目前,我的 select 下拉列表 onchange 事件仅将下拉列表中的 selected 值传递给调用 zend controlr
的 ajax 函数]这里是ajax函数
<script>
changeLevel = function(level){
var level_value = level.value;
var user_id =
alert(level.value);
$.ajax({
type: "POST",
url: 'http://localhost/ijm/public/user/level',
data: { function_params: level_value },
Success: function(result){
alert('Success');
}
});
}
</script>
这里是用户控制器函数
public function levelAction()
{
$storage = $this->getAuthService()->getStorage();
$user = $storage->read();
$request = $this->getRequest();
$level = $request->getPost('function_params');
echo $level;
// Check if form values are valid
$this->getUserTable()->editLevel($user->id, $level);
$this->redirect()->toRoute('user');
echo "success";
}
我想要的是每次触发 onchange 事件时我还希望将 userId 传递给 onchange 事件函数,以便我可以将它发送到我的 zend 控制器。我怎样才能做到这一点?提前致谢。
您的 select 标签也可以包含用户 ID:
<select name="level" id="level" data-userid="<?=$user->id?>" onchange="changeLevel(this);">
在 changeLevel
函数中,您可以通过以下方式访问它:
changeLevel = function(level){
var level_value = level.value;
var userid = $(level).data('userid');
alert('Value: ' + level.value + ', userid: ' + userid);
$.ajax({
type: "POST",
url: 'http://localhost/ijm/public/user/level',
data: { function_params: level_value, userid: userid },
Success: function(result){
alert('Success');
}
});
}
请检查this Fiddle。
<select name="level" id= "level" onchange="changeLevel(this , '<?php echo $user->id?>');">
...
changeLevel = function(level, user_id){
...