Actualmente tengo una petición AJAX, que los mensajes de datos desde la base de datos en una <div>
etiqueta con el id de result
. Dentro de mi consulta PHP vuelvo *
los datos de mi tabla db module
y luego devolver los valores específicos de una <div>
con el identificador de result
. Sin embargo, ¿hay alguna manera de que me pueden enviar otros datos de mi declaración PHP y llenar varios ID de dentro de mi html?
Por ejemplo, el con el identificador de result
muestra el ID del módulo y el nombre, sin embargo, que quería tener también otro con la etiqueta de identificación de content
y devolver los datos de contenido de mi db y simplemente enviar a la identificación de content
¿Es posible llenar diferente con diferentes datos con la misma petición AJAX?
module.php
<div>
<h1>Welcome to this module</h1>
<div id="result">
<!-- This is where I currently return the ID and the module name -->
</div>
<div id="content">
<!-- This is where I would like to return other data via the AJAX -->
</div>
</div>
moduleTestingAJAX.php:
<?php
require 'scripts/db.php';
$moduleID = $_POST['moduleID'];
if(isset($_POST['moduleID']))
{
$stmt = $conn->prepare ("SELECT * FROM `module` WHERE moduleID = ?");
$stmt->bind_param("i", $moduleID);
$stmt->execute();
$result = $stmt->get_result();
while($row = $result -> fetch_assoc()) {
echo $row['moduleID'].' '.$row['moduleName'];
}
}
?>
</div>
script.js:
function getModuleData(moduleID){
console.log(moduleID);
$.ajax({
url: "moduleTestingAJAX.php",
method: "post",
data: {moduleID:moduleID},
success: function(data){
$('#result').html(data);
}
});
console.log('test');
}
Captura de pantalla después de usar la respuesta de Nabil como se puede ver los datos devueltos en una línea, mientras que los datos de contenido deben ser devueltos a la línea de abajo:
Enviar de vuelta una respuesta JSON con llave como div id y el valor que necesitan ser poblada de los datos.
<?php
require 'scripts/db.php';
$moduleID = $_POST['moduleID'];
if(isset($_POST['moduleID']))
{
$stmt = $conn->prepare ("SELECT * FROM `module` WHERE moduleID = ?");
$stmt->bind_param("i", $moduleID);
$stmt->execute();
$result = $stmt->get_result();
$output = [];
while($row = $result -> fetch_assoc()) {
$output["result"] = $row['moduleID'].' '.$row['moduleName'];
$output["content"] = $row["content"];
}
echo json_encode($output);
}
?>
</div>
Usando jQuery que puede poblada diferentes divs del Reponse
function getModuleData(moduleID){
console.log(moduleID);
$.ajax({
url: "moduleTestingAJAX.php",
method: "post",
data: {moduleID:moduleID},
success: function(data){
$('#result').html(data.result);
$('#content').html(data.content);
}
});
}