Nasıl bir veritabanına sunulmadan önce, iki bölüme bir PHP formu bölebilirsiniz?

4 Cevap php

Ben bir veritabanında saklanır tüm bilgi girmek için kullanıcılar için bir yarışma için bir PHP formu kurdunuz. Ben bunu bir NetTut + öğretici kullanılır.

Ben gerektiği gibi veritabanına göndererek formu var, ama çok fazla soru soruluyor, ben iki ayrı bölüme formu bölmek istiyorum. Açıkçası ilk sayfa veritabanına sunulacak form için izin ikinci aşamasından önce bir sonraki adımla devam söyleyebilirim.

Kullanıcının gördüğü içerik split olmalıdır, ama hepsi aynı formun bir parçası olmalıdır. Adım 1> sunulmadan önce 2. Adım.

Herkes biliyor ya da bunu yapmak için herhangi bir yöntem tavsiye eder misiniz?

Ben aşağıdaki kodu ekledim.

<form method="post" action="">

    <fieldset>

        <ul>
            <li>
                <label for="code">Entry Code On-Pack</label>
                <input type="text" name="code" />
            </li>
            <li>
                <label for="name">Name</label>
                <input type="text" name="name" />
            </li>
            <li>
                <label for="email">Email</label>
                <input type="text" name="email" />  
            </li>
            <li>
                <label for="addressone">Address</label>
                <input type="text" name="addressone" />
            </li>
            <li>
                <label for="addressone">&nbsp;</label>
                <input type="text" name="addresstwo" />
            </li>
            <li>
                <label for="addressone">&nbsp;</label>
                <input type="text" name="addressthree" />       
            </li>
            <li>
                <label for="telephone">Telephone</label>
                <input type="text" name="telephone" />  
            </li>
            <li>
                <label for="dob">Date of Birth</label>
                <input name="dob" type="text" value="[dd/mm/yy]" /> 
            </li>
            <li>
                <label for="q1">Where have you seen Cookstown advertised?</label><br />
                <input type="checkbox" name="q1cb1" /><label for="q1cb1">Magazines</label><br />
                <input type="checkbox" name="q1cb2" /><label for="q1cb2">Billboards</label><br />
                <input type="checkbox" name="q1cb3" /><label for="q1cb3">Television</label><br />
                <input type="checkbox" name="q1cb4" /><label for="q1cb4">Radio</label><br />
                <input type="checkbox" name="q1cb5" /><label for="q1cb5">Online</label><br />
                <input type="checkbox" name="q1cb6" /><label for="q1cb6">Public Transport</label><br />
                <input type="checkbox" name="q1cb7" /><label for="q1cb7">Bus Stops</label><br />
            </li>
            <li>
                <label for="q2">How well do you remember those advertisments?</label><br />
                <input type="radio" name="q2" value="VeryWell"/><label for="q1cb1">Very well</label><br />
                <input type="radio" name="q2" value="FairlyWell"/><label for="q1cb2">Fairly well</label><br />
                <input type="radio" name="q2" value="FewDetails"/><label for="q1cb3">A few details</label><br />
                <input type="radio" name="q2" value="NotAtAll"/><label for="q1cb4">Not at all</label><br />
            </li>
                <label for="tc">Do you accept the terms and conditions</label>
                <input type="checkbox" name="tc" class="styled" />
            </li>
            <li>&nbsp;</li>
            <li>
                <input type="submit" value="Enter Competition" class="large blue button" name="signup" />           
            </li>
        </ul>

    </fieldset>

</form> 

4 Cevap

sessions mechanism 1 adım verilerinizi depolamak için kullanabileceğiniz

Siz iki sayfaya onları geçmek ve daha sonra da gizli değişkenler onları koymak olabilir. Ayrıca oturum değişkenleri kullanabilirsiniz.

example with hidden fields

Oturumları genellikle bunu yapmak için tercih edilen bir yoldur, ancak gizli form alanları gibi iyi çalışır.

Bunu yapmak oldukça kolay - ilk sunulmasından sonra, oturumu içine değerleri saklamak - İstersen önce onları doğrulamak, aslında bunu yapmak için muhtemelen iyi bir fikir. Ardından bir sonraki sayfaya gidin ve teslim kez cevapların ikinci demet doğrulamak ve veritabanına içine koydu.

Gizli form alanları çok çalışmak, ama ben oturum tabanlı yaklaşımı tercih.

İyi şanslar!

Bir diğer seçenek aynı sayfada bir gizli div ek alanları koymak ve ilk seti tamamlandıktan sonra onlara göstermek için javascript kullanmak olacaktır. Sizin için avantajı, form işleme basit tutar olmasıdır. Ayrıca kullanıcılar için, formun diğer bölümünü almak için sunucuya gidiş dönüş olmayacaktır.

Bu, tabii ki, kullanıcıların javascript açık olmasını gerektirir. En iyi uygulama varsayılan olarak aynı sayfada tüm alanları göstermek için olacak, ve sonra sayfa işler önce ikinci parti gizlemek için JS kullanmak istiyorsunuz.