Функция щелчка Jquery (в зависимости от того, какой экземпляр результирующего div MYSQL нажат)?

#javascript #jquery #html #mysql

#javascript #jquery #HTML #mysql

Вопрос:

У меня есть цикл запроса MYSQL для извлечения списка доступных элементов в моей таблице. Я помещаю свои результаты в divs следующим образом:

 <?php $myStats = $mysqli->query("SELECT * FROM packages, packages_benefits WHERE packages.package_id = packages_benefits.package_id AND packages.status = 'Active'");
    if ($myStats->num_rows > 0) {
    // output data of each row
    while($row = $myStats->fetch_assoc()) { 

    echo '<div class="advertise_unit">';
    echo '<div class="advertise_unit_u">';

    echo '<h10>'.$row['name'].'</h10>';

    echo '<div class="button_p">Buy Now</div>';

    echo '</div>';

    echo '<div class="description_contain"><li>'.$row['b_1'].'</li></div>';
    echo '<div class="description_contain"><li>'.$row['b_2'].'</li></div>';
    echo '<div class="description_contain"><li>'.$row['b_3'].'</li></div>';
    echo '<div class="description_contain"><li>'.$row['b_4'].'</li></div>';


    echo '<div class="price_tag"><h4>£'.$row['price'].'</h4></div>';
    echo '</div>';

    } } ?>
  

Это приводит к результату, подобному следующему:

 Wrapped In Div ($row['name'] = Result 1 ).      Wrapped In Div($row['name'] = Result 2) .      Wrapped In Div ($row['name'] = Result 3)
  

Далее, в зависимости от того, на что button_p div нажимает пользователь, я хочу запустить свой скрипт jquery для извлечения / вставки соответствующего значения этого divs $ row [‘name’] в поле выбора моей формы. Принимая во внимание, что каждое значение будет разным — в зависимости от того, на какой элемент был нажат.

 <div id="registration" style="display:none; padding:5.5em; text-align: left;">
<?php include 'assets/registration.php';?>
</div>
<script>
    $('.button_p').click(function(){
    $("#ad_type select").val($row['name'] value of DIV CLICKED SHOULD GO HERE);
    $('#registration').show(150);
    $('html, body').scrollTop($('#registration').offset().top);
    return false; // Please put the return false; at the end.
}); 
</script>
  

Содержимое страницы registration.php:

 select name="Advert Type" id="ad_type" class="edit">
  <option value="Deluxe">Deluxe</option>
  <option value="Premium">Premium</option>
  <option value="Basic">Basic</option>
</select>
  

Пожалуйста, может кто-нибудь показать мне, как сделать то, чего я пытаюсь достичь.
По сути, если вы представите, что отображаются 3 результата.
Все с другим значением для $row[‘name’].

 Div<div class="button_p"></div>
$row['name'] = 1 .

Div<div class="button_p"></div>
$row['name'] = 2 .

Div<div class="button_p"></div>
$row['name'] = 3 .
  

Для того, на какую button_p div пользователь нажимает для каждого элемента — я хочу получить соответствующее значение $ row [‘name’] для этого элемента и ввести его в мое поле выбора с помощью jquery.

Заранее спасибо.

Комментарии:

1. Первая проблема, $("#ad_type select") выбор — это #ad_type так что либо это должно быть select#ad_type , либо просто #ad_type

2. Неясно, что вы подразумеваете под ЗНАЧЕНИЕМ ЩЕЛЧКА в DIV . Пожалуйста, уточните, какое значение вы ищете в своем HTML. Элемент DIV не имеет атрибута Value. Вы имели в виду класс? ИДЕНТИФИКАТОР? Содержимое?

3. @Twisty внесли изменения в этот раздел. Итак, если пользователь нажимает button_p, то значение $ row [‘name’] для этого элемента — это то, что я хочу получить.

4. @M.Obren из какой строки вы пытаетесь получить значение? Как вы узнаете, на какой из них был нажат? Какая его часть содержит значение

5. @Twisty я не знаю, на какой элемент div был нажат, отсюда и мой вопрос. Как я могу узнать. Также представьте, что есть 3 результата, и каждый из них имеет разное значение для $row [‘name’]. В зависимости от того, на каком экземпляре button_p пользователь нажимает для каждого результата, я хочу получить соответствующее значение $ row [‘name’] этого результата

Ответ №1:

Попробуйте это, заменив ваш селектор только на #ad_type и получите значение $ raw [‘name’] выбранного элемента.

 <script>
    $('.button_p').click(function(){
    $("#ad_type").val($(this).parent('.advertise_unit_u').find('h10').html());
    $('#registration').show(150);
    $('html, body').scrollTop($('#registration').offset().top);
    return false; // Please put the return false; at the end.
}); 
</script>
  

Комментарии:

1. Гениально, это сработало идеально. Я принял этот ответ, потому что это было самое простое решение и его легче всего было адаптировать к моему уже существующему коду. Спасибо