Флажки установлены?

Теперь я провел много исследований, перепробовал множество методов в PHP, включая $_POST isset.. foreach и т. д.

Но мне нужна помощь!

По сути, просто хочу проверить, установлены ли флажки. И ЗАТЕМ добавьте 1 к количеству $посещений, если флажок установлен.

Пока я могу проверить, установлен ли флажок, я думаю, что смогу понять это оттуда!

заранее спасибо

( примечание: $visits — это количество посещений свойства. Этот код отображает информацию о свойстве, считанную из файла)

<?
    $filename = "house.txt";
    $filepointer = fopen($filename,"r");  // open for read
?>

<html>
<head>
    <h1> Search for properties</h1>
    <form method = "post" action= "visit.php">
        Enter max price
        <input type = "text" name = "max" value="<?=$Max;?>">
        <input type = "submit" name = "submit">
        <br><i><p>Properties found</p></i></br>
    </form>
</head>
</html>

<?
    $myarray = file ($filename);
    for ($mycount = 0; $mycount < count($myarray); $mycount++ ) { // one input line at a time
        $aline = $myarray[$mycount];
        $postcode = getvalue($aline,0);
        $value = getvalue($aline,1);
        $image = getvalue ($aline,2);
        $visits = getvalue($aline,3);
        $Max = $_POST['max'];

        if ($value < $Max) {
            print "<table border = 2>";
            print "<FORM METHOD='POST' ACTION='visit.php' >";
            print "<td> <input type='checkbox' name='check' value='Yes' > $postcode </td><BR> \n";
            print "<td>$value <BR>";
            print "<td>$image<BR>";
            print "<td>$visits<BR><p>";
            print "</table>";
            print "</form>";
        }
    }

    function getvalue ($aline, $commaToLookFor) {   
        $intoarray = explode(",",$aline);
        return  $intoarray[ $commaToLookFor];  
    }

    if (isset($_POST['check']) && $_POST['check'] == 'Yes') {
        echo "checked!";
    } else {
        echo "not checked!.";
    }
?>

person Shazia E    schedule 25.02.2013    source источник
comment
Так что же происходит?   -  person Jon    schedule 25.02.2013
comment
Последний бит кода (который проверяет, отмечены ли флажки) не работает.   -  person Shazia E    schedule 25.02.2013
comment
ошибка: невозможность задать вопрос в посте.   -  person    schedule 25.02.2013
comment
Извините, проверьте еще раз. у меня есть правильный вопрос   -  person Shazia E    schedule 25.02.2013
comment
Он распечатывает проверенный или не проверенный?   -  person Explosion Pills    schedule 25.02.2013
comment
Взрывы - даже если флажок установлен, он выводит не отмеченный   -  person Shazia E    schedule 25.02.2013
comment
Просто проверьте isset, не проверяйте == 'Yes'   -  person Jon    schedule 25.02.2013
comment
Привет, Джон. Сделал это, но всегда выходит, что не проверено!   -  person Shazia E    schedule 25.02.2013
comment
Поскольку похоже, что вы создаете здесь несколько форм, как вы их отправляете? Кнопка отправки вверху предназначена для формы, отличной от любых флажков на странице.   -  person Jon    schedule 25.02.2013
comment
@ShaziaE, флажок будет отправлен/isset()==true только в том случае, если флажок установлен.   -  person The Alpha    schedule 25.02.2013
comment
@Jon - первая форма ищет в файле house.txt соответствующие свойства ... Я просто включил кнопку отправки в конце для функции флажка, но она все еще не работает ..   -  person Shazia E    schedule 25.02.2013
comment
@SheikhHeera - к сожалению, не работает ..   -  person Shazia E    schedule 25.02.2013
comment
@ShaziaE, ты проверил if (isset($_POST['check']))?   -  person The Alpha    schedule 25.02.2013
comment
Итак, теперь у вас есть одна кнопка отправки для каждого флажка? Потому что если это так, то это неэффективно и мало что даст. Открывайте форму перед флажками, а затем добавляйте кнопку sumit и закрывайте форму после них.   -  person Jon    schedule 25.02.2013
comment
Джон прав; см. мой ответ ниже - я только что добавил пример кода, доказывающий, что он работает.   -  person Matt Browne    schedule 25.02.2013


Ответы (1)


Вы отправляете форму, отличную от той, которую, по вашему мнению, вы представляете... у вас есть две формы на странице, обе отправляются на "visit.php". Эта строка не должна существовать:

print "<FORM METHOD='POST' ACTION='visit.php' >";

...так как вы уже создали форму в верхней части файла.

Это потребует небольшой реорганизации вашего кода, но основная идея заключается в том, что вам нужна одна и только одна форма, содержащая все поля и кнопку отправки, в противном случае вы отправляете форму, содержащую максимальную цену, и ничего больше.

В качестве альтернативы, если вам действительно нужны отдельные формы (я недостаточно знаком с вашим вариантом использования, чтобы быть уверенным), то для второй формы потребуется собственная кнопка отправки.

Упрощенный рабочий код:

 print "<table border = 2>";
print "<FORM METHOD='POST' ACTION='visit.php' >";
  print "<td> <input type='checkbox' name='check' value='Yes' > $postcode </td><BR> \n";
  print "<td> <button type='submit'>Submit</button> </td><BR> \n";
 print "</table>";
 print "</form>";

//personally I would just check for isset($_POST['check']), but it doesn't really matter... 
if (isset($_POST['check']) && $_POST['check'] == 'Yes') 
{
  echo "checked!";
}
else
{
  echo "not checked!.";
}
person Matt Browne    schedule 25.02.2013