0
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();
            }
        }
        }

    }
  • 项目清单

在此代码中,如果没有选择 id,则警报不起作用。所以有人帮帮我。我已经尝试了很多,但 js 不工作。我在 php 中使用了 js,这是第一次 js 在 php 中不起作用

4

3 回答 3

2

如果没有看到发出 HTTP 请求的代码,很难说问题出在哪里。

他们最有可能的解释是当没有选择 id 时selectedId 设置为空字符串。然后条件!isset($_POST['selectedId'])不会给你你想要的结果。改为使用empty()(并确保这0不是可接受的 id 值)。

于 2013-04-15T07:06:21.073 回答
0

它似乎$_POST['selectedId']是一个数组。那么你应该使用例如isset元素$_POST['selectedId']if (!isset($_POST['selectedId'][0]))

编辑1:试试这个

$array_id = array_filter($_POST['selectedId']);

然后使用 if (!empty($array_id))而不是if (!isset($_POST['selectedId']))

于 2013-04-15T07:13:25.507 回答
0

除非您将响应注入回页面,否则永远不会评估 Javascript。

如果你要做...

document.write('<script src="/path/to/phpscript.php">')

然后响应将附加到页面并进行评估。

然而,如果你这样做...

$.ajax({
    success: function(response) {
        //Blah....  
    }
});

或类似的东西,响应永远不会被评估,它作为字符串传递给你的成功函数。所以你可以让 PHP 打印10成功/失败 - 甚至更好地返回一个 Json 对象

<?php

    ...
    if(!isset($_POST['selectedId']))
    {
        $Ret->Success = false;
        $Ret->Reason = "No row is selected";
        header("Content-Type: application/json");
        print json_encode($Ret)
    }     
?>

然后使用$.getJsonAjax 调用将响应检索为 Js 对象(请参阅此手册页

于 2013-04-15T07:22:25.597 回答