Să presupunem că am vrea un mini-site care să încarce toate paginile cu INCLUDE/REQUIRE, astfel încât totul să ruleze prin intermediul index.php.
Varianta pentru $_POST
Am improvizat un meniu care poate fi, de asemenea, plasat în alt fişier. Deoarece „meniul” este plasat într-un formular, am plasat evenimentul onchange pentru a nu fi nevoie de un buton Submit. Am ascuns, evident, datorită CSS-ului, butoanele radio.
Pentru a preveni, la reîncărcarea paginii. dialogul „Confirm Form Resubmission„, am folosit scriptul aferent lui window.history.replaceState.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<style> input[type=radio] {display: none;} input[type=radio] + label {color: red;cursor:pointer;} input[type=radio] + label:not(:last-child):after {content:' | ';background:yellow;color:red;font-weight:bold;} </style> <form method="POST" action=""> <input id="radio_1" type="radio" name="mnu" value="1" onchange="this.form.submit()"><label for="radio_1">TIA</label> <input id="radio_2" type="radio" name="mnu" value="2" onchange="this.form.submit()"><label for="radio_2">ISA</label> </form> <?php IF(ISSET($_POST['mnu'])) { $mnu = $_POST['mnu']; ?><?php SWITCH($mnu) { CASE 1: require("pag1.php"); ECHO '<pre>Pagina 1</pre>'; BREAK; CASE 2: require("pag2.php"); ECHO '<pre>Pagina 2</pre>'; BREAK; DEFAULT: include("pag3.php"); ECHO '<pre>Pagina 3</pre>'; } } ?> <script> if ( window.history.replaceState ) { window.history.replaceState( null, null, window.location.href ); } </script> |
Varianta pentru $_GET
Întrucât în bara de adrese ar apărea referinţa la altă pagină, am folosit MD5, pentru a face un pic mai „misterios” linkul.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php $id1=MD5(1); $id2=MD5(2); ?> <a href="index.php">Acasa</a> | <a href="index.php?id=<?php ECHO $id1; ?>">TIA</a> | <a href="index.php?id=<?php ECHO $id2; ?>">ISA</a> <hr> <?php IF (ISSET($_GET['id'])) {$id = $_GET['id'];} ELSE {$id = 0;} SWITCH($id) { CASE MD5(1): include("pag1.php"); Echo '<pre>Pagina 1</pre>'; BREAK; CASE MD5(2): include("pag2.php"); Echo '<pre>Pagina 2</pre>'; BREAK; DEFAULT: include("pag3.php"); Echo '<pre>Pagina 3</pre>'; } ?> |
Sursa: Stackoverflow.com