Форма не переходит на другую страницу - PullRequest
1 голос
/ 26 марта 2012
<form id="enter" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post" onsubmit="return validateForm(this);" >
    <p>
        <input id="submitBtn" name="submitDetails" type="submit" value="Submit Details" onClick="myClickHandler(); return false;" />
    </p>
</form> 

<script type="text/javascript">
    function myClickHandler(){
         if(validation()){
                    showConfirm();
         }
    }
</script>

<?php
    session_start();

    $outputDetails = "";
    $outputDetails .= "<table id='sessionDetails' border='1'>
                            <tr>
                                <th>Number of Sessions:</th> 
                                <th>{$_POST['sessionNum']}</th>
                            </tr>";
    $outputDetails .= "</table>";
    echo $outputDetails;
?>

Выше приведен код моей формы.Я пытаюсь сделать так, что если пользователь отправит форму, он вернется на свою страницу.Но если «SessionNum» равен «1», то вместо публикации формы в самой себе, она должна опубликовать форму или, другими словами, перейти на страницу «session_marks.php», но это не так, если sessionNum равно 1, тогдаон все еще отправляет форму или переходит обратно на свою собственную страницу, что я делаю не так?

Также допустим, что он отображает число для sessionNum, а затем я отправляю форму и отправляет форму обратно себе,номер исчезает, как мне сохранить номер, отображаемый при отправке формы для себя?

Спасибо

Ответы [ 2 ]

1 голос
/ 26 марта 2012

Где находится условная логика для изменения цели сообщения формы? Все, что я вижу в теге form, это:

action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"

При этом form action всегда будет текущим файлом PHP, а не любым другим файлом PHP. Если вы хотите выполнить условную публикацию в другом файле, вам нужно добавить туда условную логику. Примерно так (хотя могут быть и лучшие способы сделать это, имейте в виду, что я очень не практикуюсь с PHP):

action="<?php $_POST['sessionNum'] == 1 ? echo 'session_marks.php' : echo htmlentities($_SERVER['PHP_SELF']); ?>"

Что касается исчезновения числа, я не вижу ни одного элемента формы с именем sessionNum. Если такого элемента формы не существует, то в $_POST['sessionNum'] ничего не будет, поэтому число «исчезнет», поскольку не будет отображаться никакого значения.

0 голосов
/ 26 марта 2012

Если приведенный выше ваш фактический код, session_start ();должен быть помещен перед ЛЮБОЙ другой информацией (html, php's echo, print и т. д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...