2014-11-14 3 views
0

У меня есть раскрывающийся список, который запускает событие изменения, которое заполняет второй список выбора через jquery и php. То, что мне нужно сделать, - это когда первое событие запускается, заполнить выпадающее меню 2 с данными обратного вызова, а также заполнить выпадающее меню 3 со значением выпадающего меню 2. Мне нужно запросить 2 таблицы company_com и отделы, которые я могу сделать, используя JOIN, но не уверены, как вернуть данные на основе запроса.Нужно заполнить тройной запрос помощи

Я опубликовал код, который я использую в настоящее время, и был бы благодарен за любую помощь в этом, поскольку я не уверен, в каком направлении идти. Большое спасибо.

изменить JQuery код события

$(function() { 
    $("#dstr_dept").change(function() { 
    $(this).after('<div id="loader"><imgages src="img/loading.gif" alt="loading files" /></div>'); 
    $.get('loadboxDstrsubcat.php?dstrdept=' + $(this).val(), function(data) { 
     $("#box_dstr").html(data); 
     $('#loader').slideUp(200, function() { 
     $(this).remove(); 
     $("#box_dstr").trigger("chosen:updated"); 
     }); 
    }); 
    }); 
}); 

код PHP

<?php 
session_start(); 
?> 

<?php 
    include('../Connections/domain.php'); 

    $dstrdept = $_GET['cltdstrdept']; 
    $customer = $_SESSION['kt_idcode_usr']; 

    mysql_select_db($database_domain, $domain); 
    $query = "SELECT name FROM departments WHERE code = '".$dstrdept."' ORDER BY name ASC"; 
    $result = mysql_query($query) or die (mysql_error()); 

    if (mysql_num_rows($result) > 0) { 

    echo "<script type=text/javascript>\n"; 
    echo "$(function() {\n"; 
    echo "$(\".noBdstrBoxes\").html('')\n"; 
    echo "$('#dstr_dept').attr('data-placeholder', \"Choose your dept...\").prop('disabled', false)\n"; 
    //echo "$(\"#box_dstr\").prop('disabled', false)\n"; 
    //echo "$('#Frtv').show()\n"; 
    echo "});\n"; 
    echo "</script>\n"; 

    // This returns the data of departments 
    while($row = mysql_fetch_array($result)) { 
    echo "<option value='$row[name]'>$row[name]</option>"; 
    }  

    } else { 

    echo "<script type=text/javascript>\n"; 
    echo "$(function() {\n"; 
    echo "$('.noBdstrBoxes').html('ERROR: There are no boxes to destroy in that dept. Please select another.').css({\"color\":\"red\", \"margin\": \"-6px 0 10px 22px\", \"font-size\": \"12px\", \"font-family\": \"Verdana, Geneva, sans-serif\"})\n"; 
    echo "$('#box_dstr').attr('data-placeholder', \"No boxes to display...\").prop('disabled', true)\n"; 
    echo "});\n"; 
    echo "</script>\n"; 

    //echo "<option value='No boxes in that dept'>No boxes in that dept</option>"; 

    } 
?> 

HTML КОД

<div class="fieldset"> 
      <h1><span>Select a Customer</span></h1> 
      <p> 
      <select data-placeholder="Choose a customer..." class="chosen-select" style="width:250px;" name="dstr_customer" id="dstr_customer"> 
       <option value=""></option> 
       <option value="DEMO">DEMO</option> 
       <option value="DEMO2">DEMO2</option> 
       <option value="DEMO3">DEMO2</option> 
       <option value="DEMO4">DEMO2</option> 
      </select> 
      <span></span> 
      <a href="javascript:void(0)" style="margin-left:10px;" class="tooltip" title="Please select a dept where the box to be destroyed is stored.">Help</a> 
      </p> 
     </div> 

<div class="fieldset"> 
      <h1><span>Select a Department</span></h1> 
      <p> 
      <select data-placeholder="Choose a dept..." class="chosen-select" style="width:250px;" name="dstr_dept" id="dstr_dept"> 
       <option value=""></option> 

      </select> 
      <span></span> 
      <a href="javascript:void(0)" style="margin-left:10px;" class="tooltip" title="Please select a dept where the box to be destroyed is stored.">Help</a> 
      </p> 
     </div> 

<div class="fieldset"> 
      <h1><span>Select an Address</span></h1> 
      <p> 
      <select data-placeholder="Choose an address..." class="chosen-select" style="width:250px;" name="dstr_address" id="dstr_address"> 
       <option value=""></option> 

      </select> 
      <span></span> 
      </p> 
     </div> 

<div class="fieldset"> 
      <h1><span>Select Your Box(es)</span></h1> 
      <p> 
      <select data-placeholder="Choose your box(es)..." class="chosen-select" name="box_dstr[]" id="box_dstr" multiple required="required"> 
       <option value=""></option> 
      </select> 
      <span></span> 
      <a style="margin-left: 12px;" href="javascript:void(0)" class="tooltip" title="Please select your boxes from the list. You can select a max of 20 boxes per submission.<br />.<br />You can select multiple boxes by holding the left ctrl on your keyboard and making your selection">Help</a> 
      </p> 
      <div class="noBdstrBoxes"></div> 
     </div> 

ответ

0

Вы можете использовать PHP для повторной отправки страницы на сервер, а затем использовать значение из первого блока выбора, чтобы использовать в ваших запросах для заполнения следующих двух полей выбора.

Или вы можете использовать AJAX, чтобы сделать то же самое, не перезагружая страницу. Но тогда вам придется использовать javascript, чтобы изменить 2 поля выбора на странице.

+0

У вас есть пример. Я могу лучше следовать примеру. Спасибо – user1532468

+0

Мне нужна дополнительная информация, чтобы помочь. То, о чем я думал, было когда выбрано первое выпадающее меню. Вы должны использовать тег формы, чтобы отправить данные обратно на ваши php-скрипты, передавая значение для клиента. Затем запустите один или два запроса и передайте эти данные обратно в свой html, а затем зациклируйте результаты, чтобы создать новые раскрывающиеся окна. –

Смежные вопросы