2016-03-13 2 views
0

Я использую Ajax для отображения выпадающего списка при выборе группы продуктов. Мой Ajax возвращает список на странице запроса (dropd.php). Однако проблема состоит в том, что массив состоит из некоторого пустого пространства между каждым элементом. Поэтому, когда я инспектировать в хроме ниже является выход я получаю,Как удалить пустую строку из массива. Я не уверен, что погода от PHP или Ajax

<option value="1">Gear pumps</option> 
<option></option> 
<option value="2">Piston pumps</option> 
<option></option> 

Как я мог удалить "<option></option>" из выпадающего списка? Если я беру флажок опции из html, то я получаю;

Шестеренные насосы^поршневые насосы^лопастные насосы ... и т. Д. Если вы заметили пробел (^).

Ajax код

<script> 
    $(document).ready(function(){ 
     $('#sel1').on('change', function(){ 
      $.post("dropd.php",{vals:$("#sel1 option:selected").text()}, 
      function(data){$.trim($("#sel2").html(data));}); 
     }); 
    }); 
</script> 

dropd.php

<?php 
    require('../config/connection.php'); 
    if($_POST['vals']){ 
    $values = mysqli_real_escape_string($dbc,$_POST['vals']); 
    $query = "SELECT * FROM prdct_categories WHERE product = '$values'"; 
    $result = mysqli_query($dbc, $query); 
    ?> 
    <option value="">Select subgroup</option> 
    <?php 
    foreach($result as $row) 
    { ?> 
    <option value="<?php echo $row['id']; ?>"><?php echo $row['subgroup']; ?><option/>   
     <?php 
     } 
    } 
    mysqli_close($dbc); 
    ?> 

Ajax данные здесь идет

<div class="form-group"> 
    <label for="inputsubprdctgrp" class="col-sm-4 control-label" >Product Subgroup</label> 
    <div class="col-sm-8"> 
     <select class="form-control" id="sel2" > 

     </select> 
    </div> 
    </div> 

Спасибо ADVANC е.

+0

<параметр значения = "1"> Насосам шестеренчатых <параметр значению = "2"> Поршневые насосы Является ли эта динамика? ? –

+3

Делает ли ' '? –

+0

^^ Да, в этом проблема. Разметка неверна, и вы добавляете пустой параметр с каждым '

ответ

0

Там может быть 2 выпуска:

  1. Результат SQL дает пустое значение, которое может быть закреплен с помощью метода array_filter():

    $ new_result = array_filter ($ результата);

  2. Вы писали вариант/ вместо **/опций

Надеются, что это помогает :)

+2

глупый я .... Спасибо Yair.R какой я глупый. –

+0

Как насчет такого запроса: 'SELECT * FROM prdct_categories WHERE product = '$ values' и product! = ''' – Rayon

+0

@RayonDabre надеюсь, что вы так не программируете, потому что его уродливые и вы ставите риск SQL Injection –

0

Просто используйте `

$ ('# ВЫБ2') найти ('вариант: пусто') удалить();`

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

+1

Он загружает параметры динамически, поэтому лучше делать это со стороны PHP. , –

+0

Он попросил какие-либо варианты, и я ответил за javascript :) не знаю, почему я был downvoted –

+0

тоже здесь, я думал, что он передает данные с PHP. даже я был никем ниспровергнут, –

0

просто не поставить эти значения в опции, если он пустой ..

вы можете использовать ниже код.

$result = mysqli_query($dbc, $query); 
    ?> 
    <option value="">Select subgroup</option> 
    <?php 
    foreach($result as $row) 
    { 
     if(trim($row['subgroup'])!=''){ 
      ?> 
      <option value="<?php echo $row['id']; ?>"><?php echo $row['subgroup']; ?><option/>   
      <?php 
     } 

    } 
    mysqli_close($dbc); 
    ?> 
+0

Этот код не работает? ? –

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