2013-06-12 4 views
0

Я использовал следующее, чтобы получить значение выбранного элемента в раскрывающемся списке на моих страницах.Как получить выбранное значение раскрывающегося списка, созданного через echo?

$field = $_POST['dropdownlistname']; 

Однако, когда я создаю выпадающий список через эхо, это не работает. Ниже приведена моя форма.

<form name="searchForm" action="newCustomerSearchform.php" method="post"> 
    <label><span></span> <input type="text" name="searchDB" /></label> 
<button type="submit" name="btnSearch" value="Search" id="btnSearch" onclick="this.form.action">Search</button></label> 

<?php 
    echo '<select name="customers">'; 
    foreach ($_SESSION['names'] as $option => $value) { 
       echo '<option value='.$value['ID'].'>'.$value['First_Name'].' '.$value['Surname'].'</option>'; 
} 
        echo '</select>'; 


$test = $_POST['customers']; 
echo $test; 
</form> 

После того, как форма будет отправлена ​​на следующий запросе выполняются на newCustomerSearch.php

<?php 
include 'newCustomer.php'; 
connect('final'); 


    $searchtext = $_POST['searchDB']; 
    $searchtext = htmlspecialchars($searchtext); // stop HTML charkacters 
    $searchtext = mysql_real_escape_string($searchtext); //stop SQL injection 
    $query = "SELECT * FROM customer WHERE First_Name LIKE '%$searchtext%'"; 
    $data = mysql_query($query) or die(mysql_error()); 


    $Customers = array(); 
    $colNames = array(); 
    while($row = mysql_fetch_assoc($data)){// puts data from database into array, loops until no more 

      $Customers[] = $row; 

     } 
     $anymatches = mysql_num_rows($data); //checks if the querys returned any results 
       if ($anymatches != 0) { 
        $_SESSION['names']=$Customers; 
           $colNames = array_keys(reset($Customers)); 




    } 

      if ($anymatches == 0) 
        { 
         echo "Sorry, but we can not find an entry to match your query<br><br>"; 
        } 




header("location: newCustomer.php"); 
?> 

страница newCustomer затем перезагружает с оказанным выпадающим списком флуд всех строк, возвращаемых запросом.

Затем я хочу получить значение элемента в раскрывающемся списке. без повторной подачи формы.

+0

Что вы подразумеваете под _dynamically_? Будет ли отправлен запрос POST на страницу PHP, содержащую ваш код? – kero

+0

Имя оператора select не является динамическим. Значит, это не должно отличаться от использования статического списка выбора? –

+1

Вы отправили форму, когда пытаетесь прочитать значение из '$ _POST ['customers']'? –

ответ

2

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

Вам нужна условная логика, которая говорит

  • ли пользователь получает страницу в первый раз?
    • Отрендерьте выберите
  • ли пользователь, посылающий страницу обратно ко мне, с формой заполняли?
    • Доступ $_POST
+1

Выпадающий список создается после отправки формы. Содержимое основано на вводах форм. Думаю, мне понадобится еще одна кнопка, чтобы получить значение созданного падающего? –

+1

@DanBarr В вашем коде показано, что вы отрисовываете список и получаете доступ к '$ _POST' в том же файле один за другим. Если это не так, вы должны уточнить свой вопрос. – meagar

2

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

Для этого вам нужен код для создания страницы и код для чтения ответа читателя. Вы делаете то и другое?

Смежные вопросы