Javascript在php内部无效

时间:2013-04-15 07:02:51

标签: php javascript

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内部工作

3 个答案:

答案 0 :(得分:2)

如果没有看到发出HTTP请求的代码,很难说出问题是什么。

当没有选择id时,他们最有可能解释selectedId 被设置为为空字符串。条件!isset($_POST['selectedId'])将不会为您提供所需的结果。请改用empty()(并确保0不是可接受的ID值。)

答案 1 :(得分: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']))

答案 2 :(得分: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)
    }     
?>

然后使用$.getJson Ajax调用将响应检索为Js对象(See this manual page