У меня есть переключатели, как показано ниже.
<div id="lensType"> <input type="radio" name="design" style="vertical-align: middle" value="1"/> <label for="design">Single Vision</label><br/> <input type="radio" name="design" style="vertical-align: middle" value="2" /> <label for="material" >Accommodative Support</label><br/> <input type="radio" name="design" style="vertical-align: middle" value="3"/> <label for="design">Bifocal</label> <br/> <input type="radio" name="design" style="vertical-align: middle" value="4" /> <label for="material" >Varifocal (Intermediate/Near)</label><br/> <input type="radio" name="design" style="vertical-align: middle" value="5"/> <label for="material" >Varifocal (Distance/Near)</label> </div>
Я делаю динамический выбор. У меня есть код javascript, который публикует значение. Кажется, что стоимость поставщика теперь размещена. Ниже приведен код для моего скрипта.
$(document).ready(function(){ function populate() { fetch.doPost('getSupplier.php'); } $('#lensType').change(populate); var fetch = function() { var counties = $('#county'); return { doPost: function(src) { $('#loading_county_drop_down').show(); // Show the Loading... $('#county_drop_down').hide(); // Hide the drop down $('#no_county_drop_down').hide(); // Hide the "no counties" message (if it's the case) if (src) $.post(src, { supplier: $('#lensType').val() }, this.getSupplier); else throw new Error('No source was passed !'); }, getSupplier: function(results) { if (!results) return; counties.html(results); $('#loading_county_drop_down').hide(); // Hide the Loading... $('#county_drop_down').show(); // Show the drop down } } }(); populate(); });
Код Php:
<?php if(isSet($_POST['supplier'])) { include 'db.php'; $stmt = $mysql->prepare("SELECT DISTINCT SupplierBrand FROM plastic WHERE HeadingNo='".$_POST['supplier']."'"); $stmt->execute(); $stmt->bind_result($supplierBrand); while ($row = $stmt->fetch()) : ?> <option value="<?php echo $supplierBrand; ?>" width="100px"><?php echo $supplierBrand; ?></option>
Моя проблема в том, когда я отлаживаю. Я замечаю, что значение не передано скрипту php, и это делает выбор пустым. Я попытался отследить или отладить с помощью firebug вывести console.log и не удалось в этом отношении. Пожалуйста, помогите с этим кодом, который предназначен для отображения динамического списка из выбора переключателя.
В вашем javascript вы получаете значение div, а не переключатель:
$('#lensType').val() <--- change that
Что-то вроде этого:
$("#lensType input:radio[name='design']:checked").val()
для отладки:
$('input[name="design"]').change(function(){ console.log($('#lensType').find("input:radio[name ='design']:checked").val()); });
еще:
$('#lensType').find("input:radio[name ='design']:checked").val();
вместо
$('#lensType').val()
и вы, вероятно, захотите обернуть его witg измененной функцией, так как onload не выбран ни один проект:
$(document).ready(function(){ $('input[name="design"]').change(function(){ var design = $('input[name="design"]:checked').val(); function populate() { fetch.doPost('getSupplier.php'); } $('#lensType').change(populate); var fetch = function() { var counties = $('#county'); return { doPost: function(src) { $('#loading_county_drop_down').show(); // Show the Loading... $('#county_drop_down').hide(); // Hide the drop down $('#no_county_drop_down').hide(); // Hide the "no counties" message (if it's the case) if (src) $.post(src, { supplier: design }, this.getSupplier); else throw new Error('No source was passed !'); }, getSupplier: function(results) { if (!results) return; counties.html(results); $('#loading_county_drop_down').hide(); // Hide the Loading... $('#county_drop_down').show(); // Show the drop down } } }(); populate(); }); });