cristian frias Ответов: 1

Семантический пользовательский интерфейс аккордеон остается на выбранной вкладке после обновления страницы


У меня есть выбор пункта назначения для моего проекта маршрута, выбор находится в аккордеоне. Внутри аккордеона находится группа пунктов назначения, которая имеет кнопку Добавить. Каждая кнопка запускает обновление страницы, чтобы получить идентификатор назначения. Чего я пытаюсь добиться, так это сохранить/остаться на ранее выбранной вкладке открытой после обновления страницы.

<pre><div class="ui styled fluid accordion" id="accordion">
<?php
$sql = "SELECT * FROM tourist_spot Where WEB_CATEGORY_ID = '".$dropdown_destination."' group by UI_CATEGORY";
$result = mysqli_query($conn, $sql);
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_assoc($result)){
$r = $row['GOING_TO_COMPUTE_ID'];  
?>
<div class="title">


<?php echo $row['UI_CATEGORY'];?>
</div>

<div class="content">
<div class="destination-group">
<div class="ui middle aligned divided list scroll-div">
<div class="item" >
  <?php
$product_array = $db_handle->runQuery("SELECT * FROM tourist_spot Where GOING_TO_COMPUTE_ID = '".$r."' ORDER by TOURIST_SPOT ASC");
if (!empty($product_array)) { 
foreach($product_array as $key=>$value){
?>
<form method="POST" action="create.php?action=add&code=<?php echo $product_array[$key]["TOURIST_SPOT_ID"] ?>&dropdown_destination=<?php echo $_GET['dropdown_destination']; ?>&dropdown_tourdate=<?php echo $_GET['dropdown_tourdate']; ?>&dropdown_guestnum=<?php echo $_GET['dropdown_guestnum']; ?>">
  <div class="right floated content">
    <input type = "hidden" name = "t_id" value = "<?php echo $product_array[$key]['TOURIST_SPOT_ID']; ?>">
    <input type="submit" value="ADD" class="btnAddAction ui green button" name = "s_button"/>
  </div>
  <img class="ui tiny rounded image" src="resources/images/bg3.jpg">
  <div class="content">
<div class="header"> <?php echo $product_array[$key]["TOURIST_SPOT"]; ?>  </div>
<span class="destination-time">1 hour</span>
</div>
</form>
 <?php
}
}
?>
</div>
</div>
</div>
</div>
<?php

}
}
?>
</div>



Что я уже пробовал:

Вот что у меня есть до сих пор



<script language='javascript'>
             $(document).ready(function(){
                $('.ui.accordion').accordion();

             });

</script>

<script type="text/javascript">
  $('.ui.accordion').accordion({
    onChange: function () {
        alert(this.index(".content"));
        console.log(this.index(".content"));
    }
});
</script>

1 Ответов

Рейтинг:
1

MadMyche

У вас есть еще одна проблема; и это ваш код восприимчив к SQL-инъекция Вы никогда не должны создавать SQL-оператор, соединяя команды и текст из переменных и пользовательского ввода.
Правильный способ добавления переменных в запрос в PHP/MySql-это использование подготовленное заявление и затем Связывать переменные в командной инструкции.
Я не мастер PHP, но это должно быть похоже на то, что вы ищете. Ниже этого примера приведена ссылка на соответствующую документацию PHP.

$stmt = $mysqli->prepare("SELECT * FROM tourist_spot Where WEB_CATEGORY_ID = ? group by UI_CATEGORY")
$stmt->bind_param("wcID", $dropdown_destination)
Ссылка:: РНР: Подготовленные Заявления - Руководство Пользователя[^]
Что касается вопроса, который привел вас сюда, я бы попробовал добавить onclick событие для процедуры выбора "tab", чтобы сохранить выбранную вкладку в файл cookie, а затем, когда страница обновится, прочитать файл cookie и использовать javascript для перехода на эту вкладку


cristian frias

@MadMyche Спасибо, что дали мне дополнительные материалы, вы так добры. Я дам ему почитать. Кстати, насчет вкладки, не могли бы вы дать мне пример кода для этого? Извините, я просто новичок в javascript, надеюсь, вы понимаете. Спасибо.