>백엔드 개발 >PHP 튜토리얼 >yii 프레임워크 양식 모델을 사용하여 배열 형태로 양식을 제출하는 단계에 대한 자세한 설명

yii 프레임워크 양식 모델을 사용하여 배열 형태로 양식을 제출하는 단계에 대한 자세한 설명

php中世界最好的语言
php中世界最好的语言원래의
2018-05-21 10:00:361246검색

이번에는 yii 프레임워크 양식을 사용하여 배열 형식으로 양식을 제출하는 단계에 대해 자세히 설명합니다. yii 프레임워크 형식으로 배열 형식으로 양식을 제출할 때 주의사항은 무엇인가요? 모델입니다. 실제 사례를 살펴보겠습니다.

Yii 문서의 설명에 따르면 Yii가 양식을 처리하는 일반적인 프로세스는 다음과 같습니다.
양식에 해당하는 모델 클래스를 만들고, 필드를 유효성 검사 규칙
설정하고, 양식 제출에 해당하는 작업을 만듭니다. 그리고 뷰에서 제출된 콘텐츠
를 처리합니다. Create form
지금은 작은 프로젝트에서 Ajax를 사용하여 양식 정보를 제출하고 확인하고 저장하고 싶지만 숨겨진 iframe을 비용으로 사용하고 싶지 않습니다. -refresh submit과 모델 클래스의 검증 방법을 Action에서 사용할 수 있어서 form array를 사용하여 제출하는 방법을 생각했습니다.
예: 양식 코드:

<form action=&#39;&#39; method=&#39;post&#39; name=&#39;form_test&#39;>
    <input type=&#39;text&#39; name=&#39;arr[]&#39; value=&#39;1&#39;>
    <input type=&#39;text&#39; name=&#39;arr[]&#39; value=&#39;2&#39;>
    <input type=&#39;text&#39; name=&#39;arr[]&#39; value=&#39;3&#39;>
</form>

제출 후 $_POST['arr']를 직접 사용하여 제출된 데이터를 얻을 수 있습니다. $_POST['arr']는 다음과 같습니다.

Array
(
    [0] => a
    [1] => b
    [2] => c
)

마찬가지로 다음을 사용하는 경우도 있습니다. 제출 양식:

<form action=&#39;&#39; method=&#39;post&#39; name=&#39;form_test&#39;>
    <input type=&#39;text&#39; name=&#39;arr[3]&#39; value=&#39;a&#39;>
    <input type=&#39;text&#39; name=&#39;arr[6]&#39; value=&#39;b&#39;>
    <input type=&#39;text&#39; name=&#39;arr[8]&#39; value=&#39;c&#39;>
</form>
$_POST[&#39;arr&#39;]
Array
(
    [3] => a
    [6] => b
    [8] => c
)

물론 2차원 배열을 제출할 수도 있습니다.

<form action=&#39;http://127.0.0.1/zhaobolu/test.php&#39; method=&#39;post&#39; name=&#39;form_test&#39;>    <input type=&#39;text&#39; name=&#39;arr[][name1]&#39; value=&#39;a&#39;>    <input type=&#39;text&#39; name=&#39;arr[][name2]&#39; value=&#39;b&#39;>    <input type=&#39;text&#39; name=&#39;arr[][name3]&#39; value=&#39;c&#39;></form>
$_POST[&#39;arr&#39;] 为:Array(    [0] => Array        (            [name1] => a        )    [1] => Array        (            [name2] => b        )    [2] => Array        (            [name3] => c        ))

여기서 문제가 발생합니다. 첫 번째 하위 배열의 키를 설정하지 않으면 각 값은 다음과 같습니다. 배열을 생성할 때 순차적으로 arr에 추가합니다. 원하는 경우 다음과 같이 정보를 배열에 저장하고 키 값을 추가합니다.

<form action=&#39;http://127.0.0.1/zhaobolu/test.php&#39; method=&#39;post&#39; name=&#39;form_test&#39;>    <input type=&#39;text&#39; name=&#39;arr[a][name1]&#39; value=&#39;a1&#39;>    <input type=&#39;text&#39; name=&#39;arr[a][value1]&#39; value=&#39;a2&#39;>    <input type=&#39;text&#39; name=&#39;arr[b][name2]&#39; value=&#39;b1&#39;>    <input type=&#39;text&#39; name=&#39;arr[b][value2]&#39; value=&#39;b2&#39;></form> 
$_POST[&#39;arr&#39;] 为:Array(    [a] => Array        (            [name1] => a1            [value1] => a2        )    [b] => Array        (            [name2] => b1            [value2] => b2        ))

ajax를 사용하여 양식을 제출하고 yii form모델 확인을 사용하는 예입니다. 첫 번째는 모델 클래스 부분으로, 가장 간단한 검증 방법만 있습니다:

<?php
class LandingForm extends CFormModel
{
    public $landing_title;
    public $landing_content;
    public $landing_position;
    public function rules()
    {
        return array(
            array(&#39;landing_title, landing_content&#39;, &#39;required&#39;),
            array(&#39;landing_position&#39;, &#39;default&#39;, &#39;value&#39;=>&#39;&#39;),
        );
    }
}

모델 클래스에서 매개변수 검증 방법을 설정할 때, 규칙이 설정되지 않은 매개변수가 있는 경우 각 공개 매개변수에 대한 규칙을 설정해야 합니다. $_POST의 양식 값을 사용하여 모델에 값을 할당한 후에는 규칙이 설정되지 않습니다. 매개변수 값은 비어 있습니다.
실행 중인 양식에서 제출된 매개변수를 가져와서 확인하세요.

$model = new LandingForm;
$model->attributes = $_POST[&#39;form&#39;];
if($model->validate()){
    $info = $model->attributes;
    ... 
}

마지막으로, jquery를 사용하여 프런트 엔드 제출 양식 부분의 코드:

var info = new Object();
info = { &#39;form[landing_title]&#39;: landing_title,
        &#39;form[landing_content]&#39;: landing_content,
        &#39;form[landing_position]&#39;: landing_position,
        };
var url = "...";
$.post(url, info, function(rst){
    ... 
});

이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 정말 흥미롭습니다. PHP 중국어 웹사이트의 다른 관련 기사도 주목해 주세요!

추천 도서:

콘솔 명령을 통해 yii 프레임워크를 통해 예약된 작업을 생성하는 단계에 대한 자세한 설명

PHP 가속기 eAccelerator의 구성 및 사용 단계에 대한 자세한 설명

위 내용은 yii 프레임워크 양식 모델을 사용하여 배열 형태로 양식을 제출하는 단계에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.