Php 从属下拉列表内部服务器错误(500)

Php 从属下拉列表内部服务器错误(500),php,yii,Php,Yii,我在StackOverFlow中发现了类似的问题,但我得到了不同的错误。 我正在尝试在yii中实现依赖下拉列表。从数据库到第一个下拉列表获取值。但我无法在第二个下拉列表中获得结果输出 控制器: public function actionDynamic(){ $data=Stu::model()->findAll('sna=:parent_id', array(':parent_id'=>$_POST['sna']));

我在StackOverFlow中发现了类似的问题,但我得到了不同的错误。 我正在尝试在yii中实现依赖下拉列表。从数据库到第一个下拉列表获取值。但我无法在第二个下拉列表中获得结果输出

控制器:

public function actionDynamic(){
        $data=Stu::model()->findAll('sna=:parent_id', 
              array(':parent_id'=>$_POST['sna']));
        // var_dump($data);
        // exit();

    $data=CHtml::listData($data,'branch','branch');
    // var_dump($data);
    // exit();
    foreach($data as $value=>$name){
        echo CHtml::tag('option',
                   array('value'=>$value),CHtml::encode($name),true);
    }
}
视图:

我按照这个链接来实现依赖下拉列表

它没有显示任何错误。但在网络选项卡(f12键)中,首先更改下拉列表,显示“500”(内部服务器错误)

请先帮我谢谢

500(内部服务器错误)

出现此错误的原因可能很多,但由于您的应用程序正在运行,我想您的代码可能有问题。您的代码看起来不错,但我想这两点可能是个问题:

  • echo$form->DropDownList
    更改为
    echo$form->DropDownList

  • 'update'=>'#branch'
    更改为正确的
    id
    ,确保
    branch
    是第二个下拉列表的
    id
    ,通常是它的
    ModelName\u name
    ,因此它应该类似于
    'update'=>'#ModelName\u branch
    。检查浏览器中的第二个下拉列表,以确保
    id
    是什么

  • 做这些更改,看看它现在是否工作

    您还应该启用错误日志来检查错误,下面是一个示例

    编辑:

    正如@Hearaman所回答的,您还应该将
    $\u POST['sna']
    更改为
    $\u POST['ModelName']['sna']

    500(内部服务器错误)

    出现此错误的原因可能很多,但由于您的应用程序正在运行,我想您的代码可能有问题。您的代码看起来不错,但我想这两点可能是个问题:

  • echo$form->DropDownList
    更改为
    echo$form->DropDownList

  • 'update'=>'#branch'
    更改为正确的
    id
    ,确保
    branch
    是第二个下拉列表的
    id
    ,通常是它的
    ModelName\u name
    ,因此它应该类似于
    'update'=>'#ModelName\u branch
    。检查浏览器中的第二个下拉列表,以确保
    id
    是什么

  • 做这些更改,看看它现在是否工作

    您还应该启用错误日志来检查错误,下面是一个示例

    编辑:

    正如@Hearaman所回答的,您还应该将
    $\u POST['sna']
    更改为
    $\u POST['ModelName']['sna']
    问题就在这里

    $\u邮政['sna']

    在ajax调用中,数据将以
    YourModel[property]

    EX:
    
    Stu['sna']
    Stu['some_other']
    
    因此,在您的操作中,dynamic
    $\u POST['sna']
    无法选择发布的值

    更改:

      $data=Stu::model()->findAll('sna=:parent_id', array(':parent_id'=>$_POST['sna']));
    

    public function actionDynamic()
    {
        $postValues=$_POST['Stu'];        
        $data = Stu::model()->findAll('sna=:parent_id', array(':parent_id' =>$postValues['sna'] ));
    
        $data = CHtml::listData($data, 'sna', 'sna');        
        foreach ($data as $value => $name)
        {
            echo CHtml::tag('option', array('value' => $value), CHtml::encode($name), true);
        }
    }
    
    问题就在这里

    $\u邮政['sna']

    在ajax调用中,数据将以
    YourModel[property]

    EX:
    
    Stu['sna']
    Stu['some_other']
    
    因此,在您的操作中,dynamic
    $\u POST['sna']
    无法选择发布的值

    更改:

      $data=Stu::model()->findAll('sna=:parent_id', array(':parent_id'=>$_POST['sna']));
    

    public function actionDynamic()
    {
        $postValues=$_POST['Stu'];        
        $data = Stu::model()->findAll('sna=:parent_id', array(':parent_id' =>$postValues['sna'] ));
    
        $data = CHtml::listData($data, 'sna', 'sna');        
        foreach ($data as $value => $name)
        {
            echo CHtml::tag('option', array('value' => $value), CHtml::encode($name), true);
        }
    }
    

    服务器错误日志显示了什么?他们将有一个500错误的原因。日志位置特定于您的服务器包。在LAMP stack上,尝试/var/log/httpd/*errror_log或Google以获取您的操作系统和web服务器包。服务器错误日志会显示什么?他们将有一个500错误的原因。日志位置特定于您的服务器包。在LAMP stack上,为您的操作系统和web服务器包尝试/var/log/httpd/*error_log或Google。