Jump to content
php.lv forumi

formas submitosana ja ir dinamisks saturs


L4URO

Recommended Posts

čau,tā tad man ir viena lapa makeFromTemplate.php ,k as sevī includo jaunu lapu

 

<div id="loadedContent">
  
   <?php 
   if (isset($_GET ['page'])) {
       $p = $_GET ['page'];
       switch ($p) {
           case 'PAGE2':
            include 'PAGES/PAGE2.php';
           break;


           case 'PAGE3':
            include 'PAGES/page3.php';
           break;


           case 'PAGE4':
            include 'PAGES/page4.php';
           break;


           case 'PAGE5':
            include 'PAGES/page5.php';
           break;
         
         default:
              include 'PAGES/PAGE2.php';
           break;
       }
      }
   ?>
</div>
 
 
un tad skatoties pec url es includoju lapu iekšā makeFromTemplate.php lapā,tad piemeram es esmu includojis PAGE2.php un tās saturs (skatit nakamo kodu) parādas makeFromTemplate.php , bet...
 
<form action="nezinuKasJaliekJoManNesanak" name="foorm" method="GET">
<input type="text" autocomplete="off" name="answer1"><br>
 <input type="text" autocomplete="off" name="answer2"><br>
 <input type="text" autocomplete="off" name="answer3"><br>
 <input type="text" autocomplete="off" name="answer4"><br>
<input type="submit" name="roll" value="Make">


</form>


<?php 


if(isset($_GET['answer1'])&&isset($_GET['answer2'])&&isset($_GET['answer3'])&&isset($_GET['answer4'])){
    $answer1=$_GET['answer1'];
    $answer2=$_GET['answer2'];
    $answer3=$_GET['answer3'];
    $answer4=$_GET['answer4'];


                if(!empty($answer1)&&!empty($answer2)&&!empty($answer3)&&!empty($answer4)&&!empty($answer5)&&!empty($answer6)&&!empty($answer7)&&!empty($answer8)){


                         $output= "Welcome $answer1 and $answer2 you all are my friends";
                         echo $output;
                        
                }else{
                     echo "fill all fields,my friend!";
                }
}
?>
 
 
... ko es gribu ir,ka pēc tās formas submitošananas es varu redzēt   $output mainīgo makeFromTemplate.php lapā. Nezinu,ko rakstīt pie form action,jo nekas nesanāk.
tad,kad es includoju page2.php viss ir ok url ir localhost/ makeFromTemplate / makeFromTemplate.php ? page = PAGE2  , bet kad submitoju formu kas ir page2.php url ir 
localhost/makeFromTemplate/ makeFromTemplate.php ? answer1=NESANAK&answer2 = ATKAL & answer3=NESANAK & answer4=ATKAL &roll=Make UN makeFromTemplate.php nekas neparādas
 
 Ko jūs varat ieteikt?
 
 
Paldies! 
Edited by L4URO
Link to comment
Share on other sites

<form action="nezinuKasJaliekJoManNesanak">

šī vietā action liec tukšu "", tad submits ies uz to pašu failu, kas izvada formu. Tikai formā ieliec vienu hidden lauku ar vērtību 1 un tad ar $_GET['myform'] detektē, ka ir submits. Un labāk method liec "post" un tad mainīgos ielasi caur $_POST masīvu. Pēc submit datu apstrādes parasti taisa redirektu (kautvai uz to pašu lapu vai uz kādu msg), lai lietotājs nevar otrreiz nejauši nosubmitēt datus.

 

Otrkārt, Tev kods ir slimīgs. Tur, pirmajā blokā, kur:

......
switch ($p) {
           case 'PAGE2':
            include 'PAGES/PAGE2.php';
           break;
.....

kāpēc tu inklūdes deklarē kodā, ja tā vietā var izmantot vienu include, kur tu, balstoties uz $p uzkonstruē inklūdējamā faila ceļu?

include 'PAGES/'.$p.'.php';

tikai pirms tam ar file_exists pārbaudi, ja eksistē tāds. Ja nē, tad inclūdo to, kas Tev tagad iet zem default: bloka.

Edited by gurkjis
Link to comment
Share on other sites

<form action="nezinuKasJaliekJoManNesanak">

šī vietā action liec tukšu "", tad submits ies uz to pašu failu, kas izvada formu. Tikai formā ieliec vienu hidden lauku ar vērtību 1 un tad ar $_GET['myform'] detektē, ka ir submits. Un labāk method liec "post" un tad mainīgos ielasi caur $_POST masīvu. Pēc submit datu apstrādes parasti taisa redirektu (kautvai uz to pašu lapu vai uz kādu msg), lai lietotājs nevar otrreiz nejauši nosubmitēt datus.

 

Otrkārt, Tev kods ir slimīgs. Tur, pirmajā blokā, kur:

......
switch ($p) {
           case 'PAGE2':
            include 'PAGES/PAGE2.php';
           break;
.....

kāpēc tu inklūdes deklarē kodā, ja tā vietā var izmantot vienu include, kur tu, balstoties uz $p uzkonstruē inklūdējamā faila ceļu?

include 'PAGES/'.$p.'.php';

tikai pirms tam ar file_exists pārbaudi, ja eksistē tāds. Ja nē, tad inclūdo to, kas Tev tagad iet zem default: bloka.

 

redirektu taisit ar header location ? un es nesapratu par to hidden lauku. tu domaa  <input type="text" value="1" style="display:none"> ?

Link to comment
Share on other sites

Iesaku tev palasīt, kas ir MVC un, kas ir freimworki, un izmantot kādu no populārajiem PHP freimworkiem. 

Problēmas, kuras tu mēģini risināt, jau sen ir 100x labāk atrisinātas. 

 

iedošu hintus:

http://www.phpframeworks.com/top-10-php-frameworks/

http://php.dzone.com/news/top-10-php-frameworks

http://jonathanmh.com/best-php-mvc-frameworks-of-2013/

Link to comment
Share on other sites

Iesaku tev palasīt, kas ir MVC un, kas ir freimworki, un izmantot kādu no populārajiem PHP freimworkiem. 

Problēmas, kuras tu mēģini risināt, jau sen ir 100x labāk atrisinātas. 

 

iedošu hintus:

http://www.phpframeworks.com/top-10-php-frameworks/

http://php.dzone.com/news/top-10-php-frameworks

http://jonathanmh.com/best-php-mvc-frameworks-of-2013/

es gribēju vienkārši papraktizēties ar pliku PHP !

Link to comment
Share on other sites

redirektu taisit ar header location ? un es nesapratu par to hidden lauku. tu domaa  <input type="text" value="1" style="display:none"> ?

jā, header('Location: '.$url); die;

 

Ja neizmanto MVC framework, tad centies datu apstrādi un loģiku rakstīt vienmēr pirms HTML izvada. Iekš HTML php izmanto tikai lai izvadītu datus.

hidden lauks:

<input type="hidden" name="formsubmit" value="1"/>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...