AJAX的结果无法选择

时间:2018-03-03 08:31:42

标签: yii2 yii2-advanced-app

以下代码将根据预期使用AJAX请求向我提供所有记录。不幸的是,我无法将一条选定的记录变成表格。我可以选择它们,而不是带它们(请看我的附件)。我假设templateResulttemplateSelection中存在一些错误。

改述问题: “无法选择”意味着,我无法采用单一记录显示为公式。它就像狗的食物,不能被狗吃掉,因为手会一次又一次地被移走...... 希望这有助于理解我的问题。 P.S.:id_ba_xml_gelernter_beruf_1是模型的属性

以下是公式代码:

$url = \yii\helpers\Url::to ( [ 'berufe' ] );
    ?><?=
    $form->field ( $model , 'id_ba_xml_gelernter_beruf_1' , [ 'addon' => [
            'prepend' => [ 'content' => 'gelernter Beruf 1' ] ] ] )->widget ( \kartik\widgets\Select2::classname () , [
        'options' => [ 'placeholder' => 'Berufe suchen ...' ] ,
        'pluginOptions' => [
            'allowClear' => true ,
            'minimumInputLength' => 3 ,
            'language' => [
                'errorLoading' => new JsExpression ( "function () { return 'Waiting for results...'; }" ) ,
            ] ,
            'ajax' => [
                'url' => $url ,
                'dataType' => 'json' ,
                'data' => new JsExpression ( 'function(params) { return {q:params.term}; }' )
            ] ,
            'escapeMarkup' => new JsExpression ( 'function (markup) { return markup; }' ) ,
            'templateResult' => new JsExpression ( 'function(id_ba_xml_gelernter_beruf_1) { return id_ba_xml_gelernter_beruf_1.text; }' ) ,
            'templateSelection' => new JsExpression ( 'function (id_ba_xml_gelernter_beruf_1) { return id_ba_xml_gelernter_beruf_1.text; }' ) ,
        ] ,
    ] )->label ( false );

这是ControllerCode工作得很好

public function actionBerufe( $q = null , $id = null ) {
    \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
    $out = [ 'results' => [ 'id' => '' , 'text' => '' ] ];
    if ( !is_null ( $q ) ) {
        $query = new \yii\db\Query();
        $query->select ( 'ID, Bezeichnung_neutral_kurz  AS text' )
                ->from ( 'yii2_ba.ba_berufe' )
                ->where ( [ 'like' , 'Bezeichnung_neutral_kurz' , $q ] )
                ->limit ( 20 );
        $command = $query->createCommand ();
        $data = $command->queryAll ();
        $out['results'] = array_values ( $data );
    } elseif ( $id > 0 ) {
        $out['results'] = [ 'id' => $id , 'text' => \common\modules\basis\models\BaBerufe::find ( $id )->Bezeichnung_neutral_kurz ];
    }
    return $out;
}

enter image description here

0 个答案:

没有答案