1 Востаннє редагувалося Betterthanyou (28.09.2017 16:13:15)

Тема: Перевірити існування (заповненість) всіх полів для вводу одночасно

Якщо в мене поля для вводу створені так [ім'я]-[номер]
Порядок номерів довільний

<form>
    <input type="text" name="text-name-1"/>
    <input type="text" name="text-name-2"/>
    <input type="text" name="text-name-98"/>
    <input type="submit" value="Submit"/>
</form>

Можу я перевірити їх існування (заповненість) одночасно ? Наприклад, так як в БД, пишеться спеціальний знак (напевно зірочка *, я вже не повню) що означає будь-що.

isset($_REQUEST['text-name']);//не працює

2

Re: Перевірити існування (заповненість) всіх полів для вводу одночасно

http://php.net/manual/en/function.preg-grep.php

(function(){
  console.log("called anonymously");
})()
Подякували: Betterthanyou, 221VOLT, leofun013

3

Re: Перевірити існування (заповненість) всіх полів для вводу одночасно

Начебто вийшло
html

<form method="get">
    <input type="text" name="text-name-1"/>
    <input type="text" name="text-name-2"/>
    <input type="text" name="text-name-98"/>
    <input type="submit" value="Submit" name="submit"/>
</form>

php

<?php
if(!isset($_REQUEST['submit'])) die();//if this is the first entry, then do nothing
$all_request_array = preg_grep('/text-name-/', array_keys($_REQUEST));//Get all text-name-* fields
$all_tn_field_filled = true;//If all text-name-* field was filled in, then this variable equal true 
foreach ($all_request_array as $value)//Check it all
{
    if(!$_REQUEST[$value])/*why !isset($_REQUEST[$value]) does not work !?*/
    {
        //If one field is empty
        $all_tn_field_filled = false;//One of the fields is empty.
        echo//Sent message about the error to user
        '<script type="text/javascript">',
        'alert(\'Error! Fill in all fields.\');',
        '</script>';
        break;//break the loop
    }
}
if($all_tn_field_filled)//checking whether it can be saved
{
    //Save...
    echo//Sent message about the successful save
        '<script type="text/javascript">',
        'alert(\'Great! All fields was saved.\');',
        '</script>';
}
?>
Подякували: 221VOLT1

4

Re: Перевірити існування (заповненість) всіх полів для вводу одночасно

    function AllFieldsIsFilledUp()
    {
        $request = $_REQUEST;
        $ignoreKeys = ['submit']; // Keys to skip checking
        $ignoreKeys = array_fill_keys($ignoreKeys, 'not null'); // set random data as value
        $data = array_diff_key($request, $ignoreKeys); // skip $ignoreKeys
        $filtered = array_filter($data);  // filtered empty values

        return $data == $filtered;
    }
Подякували: Betterthanyou1