Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

90
Vistas
La función Ajax no devuelve ningún resultado.

Estoy usando esta función ajax para obtener opciones para dos menús desplegables a través de ajax pero no devuelve ningún resultado. Hola, esta es mi función ajax:

 <script> $('#department').on('change',function(){ var department = $(this).val(); var course = $('#course').val(); if(department){ $.ajax({ type:'POST', url:'ajaxData.php', dataType: 'json', cache: false, data:{department: department, course: course }, success: function(data){ $('#head_name').html(data.head_name); $('#email').html(data.email); } }); }else{ $('#head_name').html('<option value="">Select Department first</option>'); $('#email').html('<option value="">Select Department first</option>'); } }); </script>

Y este es mi código de consulta:

 if(isset($_POST["department"]) && isset($_POST["course"])){ //Get all courses data $query = $db->query("SELECT head_name, email FROM head WHERE course = '".$_POST['course']."' AND department = '".$_POST['department']."' "); //Count total number of rows $rowCount = $query->num_rows; //Display result list if($rowCount > 0){ while($row = $query->fetch_assoc()){ $temp = array('head_name' => '<option value="'.$row['head_name'].'">'.$row['head_name'].'</option>', 'email' => '<option value="'.$row['email'].'">'.$row['email'].'</option>' ); echo json_encode($temp); } }else{ $temp = array('head_name' => '<option value="">Not avaialble </option>', 'email' => '<option value="">Not avaialble </option>' ); echo json_encode($temp); } }

Pero no obtengo resultados de salida, ¿qué estoy haciendo mal?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Su llamada Ajax espera JSON ( dataType: 'json' ) pero no devuelve JSON a través de su salida de PHP porque el tipo de contenido predeterminado es text/html y no application/json . Agregue el encabezado Content-Type adecuado antes de echo su salida JSON.

 header('Content-Type: application/json'); echo json_encode(array('something' => 'else'));
about 4 years ago · Santiago Trujillo Denunciar

0

hace eco de una matriz, por lo que debe acceder al elemento de datos como una matriz por índice.

por ejemplo, para el primer elemento

 success: function(data){ $('#head_name').html(data[0].head_name); $('#email').html(data[0].email); }

eventualmente intente jsonParse datos

 success: function(data){ jsonData = JSON.parse(data); $('#head_name').jsonData(data[0].head_name); $('#email').jsonData(data[0].email); }

en su tiempo, debe usar una matriz para almacenar los valores

 while($row = $query->fetch_assoc()){ $temp[] = array('head_name' => '<option value="'.$row['head_name'].'">'.$row['head_name'].'</option>', 'email' => '<option value="'.$row['email'].'">'.$row['email'].'</option>' ); echo json_encode($temp); }
about 4 years ago · Santiago Trujillo Denunciar

0

Acabo de cambiar el nombre de la variable, por supuesto, y mi función comienza a funcionar, no sé por qué así:

 data:{ department: department, courseid: course},
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda