Dizideki her bir öğe doğrulamak?

3 Cevap php

Ben şu anda çalıştığını yolu tüm veri anahtar ve ve değer olarak alan veri olarak form alanı ile ve dizinin içine koymak olduğunu, form sunucu tarafı doğrulamak için çalışıyorum, ancak ben kontrol için gereken bütün anahtarlar diğer akıllıca ile ilişkili bir değeri var ben submittion durdurmak istiyorum ve orada ayrıntıları düzenleyin ve sonra yeniden göndermek zorunda kullanıcı, ben o ayrı dizi kırmak yerine çalıştırmak ve kontrol veya koymak önce kontrol edebilirsiniz hızlı bir çek var ifadeleri eğer bir anahtar veya losts ile dizide?

3 Cevap

Bir seçenek hem biraz yapmaktır.

Anahtar olarak alan adı ile alan seçenekler ayrı bir dizi var.

$fieldTypes = array('nameFirst' => 'name',
                    'nameLast'  => 'name',
                    'phone'     => 'phone',
                    'email'     => 'email');
foreach($input as $key => $value) {
    switch($fieldTypes[$key]) {
        case 'name':
            //run $value against name validation
            break;
        case 'phone':
            //run $value against phone validation
            break;
        case 'email':
            //run $value against email validation
            break;
        default:
            //code here for unknown type
    }
}

Şimdi, bu yollardan herhangi bir sayıda kullanılan ve kolayca alan gerekiyorsa ya da değil gibi şeyler, hatta hata iletileri kapsayacak şekilde genişletilmiş olabilir. Çok boyutlu bir diziye $fieldTypes dizi veya veri içeren nesneleri dizisi çevirerek.

Eğer bir alan eklemek için karar verirseniz, bu şekilde, muhtemelen doğrulama kodu fazla bir değişiklik dahil olmaz.

Sico87,

Daha aynı anda tüm alanları test etmek istemeyen daha. Örneğin siz zorunlu değildir ve bu nedenle teslim reddeden sorunlu olacak bir telefon numarası girişi seçeneği içeren bir iletişim alanı olabilir.

Her ihtiyacı özel bir önem vermek, böylece pek çok durumda, tek tek alanlarını test etmek kolay. E-posta adresleri için özel önem vermek istiyorum, ve doğum günü özel dikkat gerekir.

Herkes eşit Tedavisi uzun vadede çok ciddi sorunlara neden olabilir.

Nasıl gibi bir şey hakkında

<?php
$arrayFilled = true;
foreach($array as $key=>$value) {
    $arrayFilled = trim($value) == '' ? false : $arrayFilled;
    if($arrayFilled === false) { break; }
}
if($arrayFilled === false) {
    echo "missing data";
}
else {
    echo "filled array";
}

Sadece boş bir dize daha fazla kontrol etmek isteyebilirsiniz ama bunu sana bırakacağım