PHP: $ _POST ["startId $ i"])! = "" - PullRequest
       2

PHP: $ _POST ["startId $ i"])! = ""

1 голос
/ 09 апреля 2011

Я пытаюсь обработать форму, которая создается динамически и поэтому изменяется по длине. Цикл while работает нормально. Тем не менее, утверждение «если» не является; он должен печатать только startId $ i и corId $ i тогда и только тогда, когда заполнено конкретное текстовое поле формы. Код печатает строку для каждого текстового поля в форме, независимо от того, было ли оно оставлено пустым или нет.

$i = 0;
while(!is_null($_POST["startId$i"])){                                                       
    if(($_POST["startId$i"]) != ""){
        echo "startId: " . $_POST["startId$i"] . " ---<br>";
        echo "corId: " . $_POST["corId$i"] . " ---<br>";

    }
    $i++;
}

Ответы [ 3 ]

3 голосов
/ 09 апреля 2011
$i = 0;
while(isset($_POST["startId$i"])){                                                       
    if( !empty($_POST["startId$i"]) ){
        echo "startId: " . $_POST["startId$i"] . " ---<br>";
        echo "corId: " . $_POST["corId$i"] . " ---<br>";

    }
    $i++;
}

Можно ли управлять именами полей?

Если да, лучшим способом будет присвоить входные данные именам name="startId[0]" и name="corId[0]" и т. Д. ...

Тогда в PHP вы просто делаете:

$startIds = $_POST['startId'];
$corIds   = $_POST['corId'];

foreach ( $startIds as $k => $startId ) {
    if ( !empty($startId) ) {
        $corId = $corIds[$k];
        echo "startId: " . $startId . " ---<br>";
        echo "corId: " . $corId . " ---<br>";
    }
}
1 голос
/ 09 апреля 2011

Вы должны использовать empty() в этом случае:

if(!empty($_POST["startId$i"])) {
   ...
}
0 голосов
/ 09 апреля 2011

Предлагаю проверить реальное содержание $ _POST. Вы можете сделать это через var_dump($_POST);

Вы можете обнаружить, например, что пустые поля содержат пробелы. В этом случае может помочь функция trim () .

Например:

while(isset($_POST["startId$i"])){                                                       
    if(trim($_POST["startId$i"])){
        echo "startId: " . $_POST["startId$i"] . " ---<br>";
        echo "corId: " . $_POST["corId$i"] . " ---<br>";
    }
    $i++;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...