1

I was trying to echo a form that already worked out when I build up before (without echoing it through php). Now that I'm trying echoing this form

echo "<form action=\"timeschedulingphp.php\" method=\"POST\" enctype=\"multipart/form-data\">";
while($row = mysqli_fetch_array($result)) {
echo "<input type=\"hidden\" id=\"FName\" name=\"FName\" value=\"" . $row['FName'] . "\">
<input type=\"hidden\" id=\"FName\" name=\"FName\" value=\"" . $row['LName'] . "\">" ;

}
echo "<input id=\"date\" type=\"text\" size=8 class=\"form-control mb-2\" name=\"Date\"> </input>
                        <script type=\"text/javascript\" src=\"js/jquery.js\"></script>
                        <script type=\"text/javascript\" src=\"js/jquery-ui.js\"></script>
                        <script type=\"text/javascript\" src=\"js/ui.js\"></script>

               <input id=\"appt-time\" type=\"time\" name=\"FromTime\"
                                   min=\"00:00\" max=\"24:00\" required
                                   pattern=\"[0-9]{2}:[0-9]{2}\" class=\"form-control mb-2\"></input>
                            
                        <input id=\"appt-time\" type=\"time\" name=\"ToTime\"
                                   min=\"00:00\" max=\"24:00\" required
                                   pattern=\"[0-9]{2}:[0-9]{2}\" class=\"form-control mb-2\"></input>

                        

                        

                        

                        <select name=\"Class\" class=\"form-control mb-2\">
                            <option value=\"null\"></option>
                            <option value=\"Piano Class\">Piano Class</option>
                            <option value=\"Sing Class\">Sing Class</option>
                        </select>

                        <select name=\"Present\" class=\"form-control mb-2\">
                            <option value=\"WasPresent?\">WasPresent?</option>
                            <option value=\"Present\">Present</option>
                            <option value=\"Absent\">Absent</option>
                            <option value=\"Justified\">Justified</option>
                        </select>

                        <input type=\"text\" placeholder=\" Notes \" name=\"Notes\" class=\"form-control mb-3\">


                        
                        <button class=\"btn btn-success\" name=\"register\">Register</button>
                        <input class=\"btn btn-primary\" type=\"reset\" value=\"Reset\">
                    </form>";

When I go to timeschedulingphp.php and it controls

if(isset($_POST['register']))

it is not isset.. why?

Thank you for replying me and I'm sorry if it's a noob question

Luca

3
  • 1
    Your code is really messy. Can you var_dump($_POST); for me and let me know what is inside it? Commented Aug 16, 2018 at 7:19
  • yes the code is a tad messy.. thank you for showing me the var_dump, for debugging I was using Chromephp, but this function dumped in a file showed me that I was doing something wrong. the problem was here: echo "<input type=\"hidden\" id=\"FName\" name=\"FName\" value=\"" . $row['FName'] . "\"> <input type=\"hidden\" id=\"FName\" name=\"FName\" value=\"" . $row['LName'] . "\">" ; so the isset was TRUE, but not the Fname which was replicated, so it didnt pass another if condition... typo problem here! Thank you for the time! Commented Aug 16, 2018 at 8:50
  • Can you try this? echo '<input type="hidden" id="FName" name="FName" value="' . $row['FName'] . '"> <input type="hidden" id="FName" name="FName" value="' . $row['LName'] . '>' ; Commented Aug 16, 2018 at 8:52

3 Answers 3

1

Try to set it as submit type

<button class=\"btn btn-success\" name=\"register\" value=\"Register\" type=\"submit\">Register</button>
Sign up to request clarification or add additional context in comments.

Comments

0

Okay According To You're Question
Why if(isset($_POST['register']))is not isset or considered have a null value
Because You don't set The Value of the button Try This

<button class=\"btn btn-success\" value="save" name=\"register\">Register</button>

This Code Will Give $_POST['register'] a Save Value or same as $_POST['register'] = 'save'
Hope This Answer Help

Comments

0

To start with you need some information about the differences you can use.


isset()

isset — Determine if a variable is set and is not NULL

In other words, it returns true only when the variabble is not null.

Documentation:


empty()

empty — Determine whether a variable is empty

In other words, it will return true if the variable is an empty string, false, array() (or []), NULL, 0, and an unset variable.

Documentation:


Related to your code and your issue, it seems $_POST is not set, so you get false in return.

You can do a couple of things to check what is inside $_POST and what to do it it is empty.

While debugging always check what is inside your data. So for that you can use:

echo '<pre>';
var_dump($_POST);
echo '</pre>';

Documentation:

Hopefully, you will receive an array like:

$array = [
        1 => 'one',
        2 => 'two',
        3 => 'three',
        4 => 'four',
        5 => 'five',
];

echo '<pre>';
var_dump($array);
echo '</pre>';
die;

Outcome:

array(5) {
  [1]=>
  string(3) "one"
  [2]=>
  string(3) "two"
  [3]=>
  string(5) "three"
  [4]=>
  string(4) "four"
  [5]=>
  string(4) "five"
}

Related to isset(), and to catch incase the array/string is empty you can do this:"

 $register = (isset($_POST['register']) ? 1 : 0);

In the code above $register will always be set. Read it like this:

  • (isset($_POST['register'])) = 'If $_POST['register'] is set'
  • ? = 'THEN DO THIS' (in our example it will become (int) 1).
  • : = 'IF NOT THEN DO THAT' (In case $_POST['register'] is not set, $register becomes (int) 0)

If $register keeps staying empty, please reload your page. By filling in your format and send actually data within $_POST. It is possible if you press F5, the $_POST data disappears which means the data is empty.


Please let me know if this was somewhat useful or not. I rather to give you information so you can practice while doing, instead of getting clear code and copy paste this. If you have questions, let me know.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.