У меня есть следующий код для генерации моего варианта:
<?php $sql = "SELECT DISTINCT MyID FROM database"; $query = $db->prepare($sql); $query->execute(); $option = ""; foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $rows) { $id = $rows[MyID]; $option.="<option>".$id."</option>"; } ?> <select name="options" id="options" class="options"> <option value="$id">Select an Option</option> <?php echo $option?> </select>
Я хотел бы использовать значение выбранного параметра в следующем запросе. Например:
<?php $myDB= $db->prepare("SELECT * FROM names WHERE RowID = :option"); $myDB->bindParam(':option', $option); //the value of the option selected in my dropdown $myDB->execute(); $result = $myDB->fetchAll();
По какой-то причине это не работает. Не могли бы вы помочь в этом. благодаря
<?php $sql = "SELECT DISTINCT MyID FROM database"; $query = $db->prepare($sql); $query->execute(); $option = ""; $result = $query->fetchAll(PDO::FETCH_ASSOC); foreach ($result as $row) { $id = $row['MyID']; $option.='<option value="'.$id.'">'.$id.'</option>'; } ?> <form method="post" action"(`The url of the next page`)"> <select name="options" id="options" class="options"> <option disabled>Select an Option</option> <?php echo $option?> </select> <input type="submit" value="submit" /> </form>
Следущая страница:
<?php if(isset($_POST['submit']) && isset($_POST['options'])) { $option = $_POST['option']; $myDB= $db->prepare("SELECT * FROM names WHERE RowID = :option"); $myDB->bindParam(':option', $option); //the value of the option selected in my dropdown $myDB->execute(); $result = $myDB->fetchAll(); }
fetchAll()
вы должны назначить это переменной, а затем fetchAll()
. $row[MyID]
MyID должен быть заключен в '' или '", поскольку индекс является строкой, поэтому $row['MyId']
if(isset())
для переменных REQUEST ($ _GET, $ _POST), это предотвратит ошибки PHP при попытке загрузить страницу без их доступности. Если у вас возникнут другие вопросы, я буду рад помочь.
Надеюсь это поможет! 🙂
РЕДАКТИРОВАТЬ
<?php if(isset($_GET['submit']) && isset($_GET['options'])) { $option = $_GET['option']; $myDB= $db->prepare("SELECT * FROM names WHERE RowID = :option"); $myDB->bindParam(':option', $option); //the value of the option selected in my dropdown $myDB->execute(); $result = $myDB->fetchAll(); /** * You'll need to put the logic for the query above here **/ } else { $sql = "SELECT DISTINCT MyID FROM database"; $query = $db->prepare($sql); $query->execute(); $option = ""; $result = $query->fetchAll(PDO::FETCH_ASSOC); foreach ($result as $row) { $id = $row['MyID']; $option.='<option value="'.$id.'">'.$id.'</option>'; } ?> <form method="get" action""> <select name="options" id="options" class="options"> <option disabled>Select an Option</option> <?php echo $option?> </select> <input type="submit" value="submit" /> </form> <?php } // End of else ?>
Я также изменил метод формы, чтобы получить и удалить действие, поэтому оно будет отправлено на текущую страницу.