Java脚本在php中不起作用 公共函数actionAjaxUpdate() { $action=$_GET['act']; 如果(!isset($\u POST['selectedId'])) { 回显“警报”(“未选择任何行”); } 其他的 { $selectedAll=$\u POST['selectedId']; 如果(计数($selectedAll)>0) { foreach($selectedAll作为$selectedId) { $model=$this->loadCompositeModel($selectedId); 开关($动作){ 案例“删除”: $model['account']->delete(); 打破 “活动”案例: $model['account']->active='1'; 打破 案例“未激活”: $model['account']->active='0'; 打破 违约: 打破 } $model['account']->save(); } } } } 列表项
在此代码中,如果未选择id,则警报不起作用。因此,有人可以帮助我。我尝试了很多,但是js不起作用。Java脚本在php中不起作用 公共函数actionAjaxUpdate() { $action=$_GET['act']; 如果(!isset($\u POST['selectedId'])) { 回显“警报”(“未选择任何行”); } 其他的 { $selectedAll=$\u POST['selectedId']; 如果(计数($selectedAll)>0) { foreach($selectedAll作为$selectedId) { $model=$this->loadCompositeModel($selectedId); 开关($动作){ 案例“删除”: $model['account']->delete(); 打破 “活动”案例: $model['account']->active='1'; 打破 案例“未激活”: $model['account']->active='0'; 打破 违约: 打破 } $model['account']->save(); } } } } 列表项,php,javascript,Php,Javascript,在此代码中,如果未选择id,则警报不起作用。因此,有人可以帮助我。我尝试了很多,但是js不起作用。 我在php中使用过js,这是第一次当js在php中不工作时,没有看到发出HTTP请求的代码,很难说问题出在哪里 他们最可能的解释是,selectedId在未选择id时设置为空字符串。条件!isset($\u POST['selectedId'])将不会提供您想要的结果。改为使用empty()(并确保0不是可接受的id值)。似乎$\u POST['selectedId']是一个数组。然后您应该对$\
我在php中使用过js,这是第一次当js在php中不工作时,没有看到发出HTTP请求的代码,很难说问题出在哪里
他们最可能的解释是,
selectedId
在未选择id时设置为空字符串。条件!isset($\u POST['selectedId'])
将不会提供您想要的结果。改为使用empty()
(并确保0
不是可接受的id值)。似乎$\u POST['selectedId']
是一个数组。然后您应该对$\u POST['selectedId']
的元素使用isset
,例如if(!isset($\u POST['selectedId'][0])
编辑1:试试这个
public function actionAjaxUpdate()
{
$action = $_GET['act'];
if(!isset($_POST['selectedId']))
{
echo '<script> alert("No row is selected"); </script>';
}
else
{
$selectedAll = $_POST['selectedId'];
if(count($selectedAll)>0)
{
foreach($selectedAll as $selectedId)
{
$model=$this->loadCompositeModel($selectedId);
switch ($action) {
case 'Delete':
$model['account']->delete();
break;
case 'Active':
$model['account']->active = '1';
break;
case 'Inactive':
$model['account']->active = '0';
break;
default:
break;
}
$model['account']->save();
}
}
}
}
然后使用
if(!empty($array_id))
而不是if(!isset($\u POST['selectedId'])
除非您将响应注入回页面,否则Javascript将永远不会被评估
如果你要做
$array_id = array_filter($_POST['selectedId']);
或者类似的,响应永远不会被计算,而是作为字符串传递给success函数。因此,您可以让PHP打印1
或0
以获得成功/失败,或者更好地返回Json对象
$.ajax({
success: function(response) {
//Blah....
}
});
然后使用
$.getJson
Ajax调用以Js对象的形式检索响应()检查您的条件是否正确。请发布您的表单,这样我们就可以查看$\u post['selectedId']
ishey条件是否正确。我已经在firebug@Edwin'columns'=>数组(数组('id'=>'selectedId','class'=>'CCheckBoxColumn',//'value'=>'data->'user\u status',),'uid','username','password','bid',数组('name'=>'active',/'header'=>'active','filter'=>数组('1'=>'Yes','0'=>'No'),'value'=>'($data->active==“1”)?('Yes”):('No')),数组('class'=>'CButtonColumn',),),);?>是$\u POST['selectedId']是一个数组。但是我应该知道$u POST['selectedId']的元素吗?那么你的意思是,你不知道元素吗?不,我的意思是当我选择一行时,selectedId返回该行的id。那么如何使用该IDselectedid
来自哪里?输入代码或向我们显示所选代码的元素ID?可能类似于$\u POST['selectedId']['id']
$.ajax({
success: function(response) {
//Blah....
}
});
<?php
...
if(!isset($_POST['selectedId']))
{
$Ret->Success = false;
$Ret->Reason = "No row is selected";
header("Content-Type: application/json");
print json_encode($Ret)
}
?>