我不能把输入放在第一位

时间:2017-04-27 10:58:21

标签: php jquery selectize.js

我试图将第一个选项选为none(取消链接该数据)。

我正在使用selectize,使用php页面我使用所有输入生成select,如下所示:

          <select class='form-control empleadosEquipamientoSelector' id='empleadoPortatil' required>
          <option value='' disabled selected>Seleccione el empleado al que asignar el equipamiento</option>";
          echo "<option value='null'>Any</option>";
          $sql = "SELECT * FROM employees";
          $stmt = sqlsrv_query( $conn, $sql );
          while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
          echo "<option value='".$row['id']."'> ".$row['name']." ".$row['surname']." ".$row['secondSurname']."</option>";
          }
          echo "</select>

在jquery中我有以下顺序,但只影响while内创建的输入,如果我称之为AAAAAAny,第一个应该按照排序标准出现,但总是出现最后一个,无论值和输入中的文字

    var $select1 = $('#empleadoPortatil').selectize({
        sortField: {
            field: 'text',
            direction: 'asc'
        }

    });

2 个答案:

答案 0 :(得分:0)

而不是使用&#34;任何&#34;使用&#34; - 任何 - &#34;它是一种黑客而不是解决方案,否则你必须在添加之前进行排序。

答案 1 :(得分:0)

如果你让SQL做所有艰苦的工作,我认为你的问题将会得到解决。这样,您的前两个项目可以是您喜欢的任何内容,然后是您生成的选项。

我还建议您将逻辑与HTML分开。在这种情况下,您的PHP可以完成所有艰苦的工作,HTML只是输出结果。这对于长期维护来说会更好 ,因为您不必一直在语言之间切换,并且您可以将您(或某人)的努力集中在一件事上。< / p>

以下建议重新编写代码:

<?php
    $sql = "SELECT * FROM employees ORDER BY …";    //  ORDER BY something
    $stmt = sqlsrv_query( $conn, $sql );
    $options = array();
    $option='<option value="%s">%s %s %s</option>';
    while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
        $options[]=sprintf($option,$row['id'],$row['name'],$row['surname'],$row['secondSurname']);
    }
    $options=implode('',$options);
?>
<select class='form-control empleadosEquipamientoSelector' id='empleadoPortatil' required>
    <option value='' disabled selected>Seleccione el empleado al que asignar el equipamiento</option>
    <option value='null'>Any</option>
    <?php print $options; ?>
</select>