ajax响应很好,但是不要进入HTML上的选择

时间:2015-03-27 14:57:28

标签: php jquery html ajax

所以,我有一个ajax调用来获取一些JSON响应。我收到的很好,但它在一个选择中显示在html上并显示为空。

js代码在这里:

 //INICIO FUNCION CARGAREDITORESCREAR
       function cargarEditoresCrear() {
           $.ajax({
               type: 'POST',
               dataType: 'json',
               url: 'php/listar_editores.php',
               async: false,

               error: function(xhr, status, error) {


               },
               success: function(data) {
                   $('#editores2').empty();
                   $.each(data, function() {
                       $('#editores2').append(
                           $('<option > </option>').val(this.id_editor).html(this.persona_contacto)
                       );
                   });

               },
               complete: {

               }
           });
       }
       //FIN FUNCION CARGAREDITORESCREAR

php代码就是这个:

<?php
header('Access-Control-Allow-Origin: *');
/* Database connection information */
include("mysql.php" );
/*
 * Local functions
 */
function fatal_error($sErrorMessage = '') {
    header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error');
    die($sErrorMessage);
}
/*
 * MySQL connection
 */
if (!$gaSql['link'] = mysql_pconnect($gaSql['server'], $gaSql['user'], $gaSql['password'])) {
    fatal_error('Could not open connection to server');
}
if (!mysql_select_db($gaSql['db'], $gaSql['link'])) {
    fatal_error('Could not select database ');
}
mysql_query('SET names utf8');
/*
 * SQL queries
 * Get data to display
 */
$sQuery = "select id_editor, persona_contacto from editor order by persona_contacto";
$rResult = mysql_query($sQuery, $gaSql['link']) or fatal_error('MySQL Error: ' . mysql_errno());
$resultado = array();
while ($fila = mysql_fetch_array($rResult)) {
    $resultado[] = array(
      'id_editor' => $fila['id_editor'],
      'persona_contacto' => $fila['persona_contacto']
   );
}
echo json_encode($resultado);
?>

服务器响应正常,所以有:

[{"id_editor":"1","persona_contacto":"juako"},{"id_editor":"2","persona_contacto":"pepe"}]

可能插入的HTML就是这个:

<div class="form-group">
                            <label for="editores2" class="col-sm-2 control-label">Nombre Editores*:</label>
                            <div class="col-sm-10">
                                <select  multiple id="editores2" name="editores2" >

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

我变得绝望,因为昨天工作正常,突然间它停止工作

谢谢大家!

编辑: 在这里我加载函数

 $('#creaDoc').click(function(e) {
           e.preventDefault();

           //oculto tabla muestro form
          $('#tabla').fadeOut(100);
          $('#formularioCrear').fadeIn(100);
          cargarEditoresCrear();
          cargarMediosCrear();
          cargarClientesCrear();

       });

2 个答案:

答案 0 :(得分:1)

function cargarEditoresCrear() {
           $.ajax({
               type: 'POST',
               dataType: 'json',
               url: 'php/listar_editores.php',
               async: false,

               error: function(xhr, status, error) {


               },
               success: function(data) {
                   $('#editores2').empty();
                   $.each(data, function() {
                       $('#editores2').append('<option value="'+data["id_editor"]+'" >'+data["persona_contacto"]+'</option>') 
                  });

               },
               complete: {

               }
           });
       }
       //FIN FUNCION CARGAREDITORESCREAR

答案 1 :(得分:0)

试试这个:

$.each(data, function(id_editor, persona_contacto) {
    $('#editores2').append(
      $('<option > </option>').val(id_editor).html(persona_contacto)
    );
});

Suerte!