Как создать динамическую панель поиска в PHP без обновления страницы в PHP? - PullRequest
1 голос
/ 03 февраля 2012
<div data-role="page" id="page">
    <div data-role="header">

    <h4> Page Refresh</h4>
    </div>

    <div data-role="content">       

          <div data-role="fieldcontain" data-theme="b">
            <ul data-role="listview" data-inset="true">

            <li data-role="list-divider"> List of Contractors </li>         
                <li> 
                    <label for="select-choice-1" class="select">Main Location</label>
                       <select name="main_location" id="select-choice-1">
                          <option value="NSW">NSW</option>
                          <option value="ACT">ACT</option>
                          <option value="VIC">VIC</option>
                          <option value="SA">SA</option>
                          <option value="QLD">QLD</option>
                          <option value="NT">NT</option>
                          <option value="WA">WA</option>
                          <option value="TAS">TAS</option>
                        </select>                     
              </li> <!-- Select Menus: Main Location-->  

                <li>  <h3> Company 1 in NSW  </h3>    </li>                     
                <li>  <h3> Company 2 in NSW  </h3>    </li>                     
                <li>  <h3> Company 3 in NSW  </h3>    </li>                     
                <li>  <h3> Company 4 in NSW  </h3>    </li>                                                         

          </div>       
    </div>
    <div data-role="footer">

    </div>
</div>

У меня есть выпадающий список со списком состояний, ниже - список компаний.

Мне было интересно, смогу ли я динамически заполнять список компаний без обновления страницы на основе значения, выбранного в раскрывающемся списке.

Проще говоря, если значение выбрано NSW, то список компаний должен содержать только компании в штате NSW.

Буду признателен, если кто-нибудь объяснит мне пример.

Ответы [ 2 ]

0 голосов
/ 04 февраля 2012

Это простой пример:

0 голосов
/ 03 февраля 2012

PHP-код читается сервером, а затем вывод преобразуется в HTML.

Единственный способ снова прочитать PHP (после выполнения действия на странице) - это повторно отправить страницу или перейти на новую.

Вы можете использовать JavaScript для выполнения действий на стороне клиента, но опять же, код PHP читается только в начале.

Вот пример того, что вы можете сделать с помощью JS:

<form name="vehicle">
    Car Make: 
    <select name="carbrand" onChange="updatecartype(this.selectedIndex)" >
    <option selected>Select A Car Brand</option>
    <option value="ford">Ford</option>
    <option value="mazda">Mazda</option>
    <option value="kia">Kia</option>
    </select>

    Car Model: 
    <select name="cartype" >
    <option value="NONE" selected>-------------------</option>
    </select>
</form>

<script type="text/javascript">

    var carbrandlist=document.vehicle.carbrand
    var cartypelist=document.vehicle.cartype

    var cartype=new Array()
    cartype[0]=""
    cartype[1]=["Focus|focus", "F-150|f150", "Taurus|taurus"]
    cartype[2]=["Protege|protege", "Tribute|tribute", "RX-8|rx8", "CX-9|cx9"]
    cartype[3]=["Rio|rio", "Sedona|sedona", "Optima|optima", "Soul|soul", "Sorento|sorento"]

    function updatecartype(selectedcar){
        cartypelist.options.length=0
        if (selectedcar>0){
            for (i=0; i<cartype[selectedcar].length; i++)
            cartypelist.options[cartypelist.options.length]=new Option(cartype[selectedcar][i].split("|")[0], cartype[selectedcar][i].split("|")[1])
        }
    }

</script>

Вот прямой подход к повторному представлению / 2 страницы с использованием только PHP, как и требовалось. //step1.php //================ <form method='post' action='step2.php'> Choose State <br> <select name='state'> <option value='MI'>Michigan</option> <option value='IL'>Illinois</option> </select> <input type='submit' value='Select State'> </form> //step2.php //================ <form method='post' action='step3.php'> Choose Company <br> <select name='company'> <?php $state_choice = $_POST['state']; if ($state_choice == 'MI') { echo "<option value='ABC'>Company ABC</option>"; echo "<option value='DEF'>Company DEF</option>"; } if ($state_choice == 'IL') { echo "<option value='UVW'>Company UVW</option>"; echo "<option value='XYZ'>Company XYZ</option>"; } ?> </select> <input type='submit' value='Select Company'> </form>

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