0

以下のようなラジオボタンがあります。

        <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>

動的選択を行っています。value を投稿する 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 を出力させてトレースまたはデバッグしようとしましたが、この点で失敗しました。ラジオボタンの選択から動的リストを表示するためのこのコードを支援してください。

4

2 に答える 2

2

デバッグ用:

$('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()

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();
});
 });
于 2013-04-17T10:01:26.603 に答える