#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. Гениально, это сработало идеально. Я принял этот ответ, потому что это было самое простое решение и его легче всего было адаптировать к моему уже существующему коду. Спасибо