Estoy intentando pasar una variable JS a la función AJAX donde esta variable se utiliza en la consulta sql. Más adelante, esto devuelve datos en la matriz codificada en json. (Actualmente he editado código para pasar el archivo php como acción en el formulario enviar para depurar los errores)
He probado otro método de pasar datos a la función AJAX como datos: "categoryid"+catid
Función JS:
function products(category){
var catid = category.value
console.log(catid)
if(catid==''){
document.getElementById("productname").value='';
}else{
$.ajax({
url: "getProductName.php",
type: 'POST',
data: {
categoryId: catid
},
success: function(response){
var len=response.length;
console.log("array length"+len)
for(var i=0;i<len;i++){
var name = response[i].name;
console.log("name is: "+name)
var dat = "<option value=" + name + "></option>"
}
$("#productname").append(dat);
}
})
}
}
llamando a la función JS:
<select class="form-control" id="productcategory"
name="productcategory" onchange="products(this);">
php donde se pasa la variable JS.
<?php
session_start();
require_once '../config/connect.php';
$cat = $_POST['categoryId'];
echo $cat;
$query = "SELECT * FROM `products` WHERE catid='$cat'";
echo $query;
$result = mysqli_query($connection, $query);
while($r = mysqli_fetch_assoc($result)){
$prodname = $r['name'];
echo $prodname;
$product_arr[] = array("name" => $prodname);
}
echo json_encode($product_arr);
?>
1 respuesta
Use este código para su solicitud ajax. Debería indicarle a ajax
que el tipo de datos de respuesta será json
. Luego, recorra cada elemento y cree un option
para el selector.
$.ajax({
type: 'POST',
url: 'getProductName.php',
data: { categoryId: catid },
dataType: 'json',
success: function (data) {
$.each(data, function(index, element) {
$('#productname').append($('<option>', {
value: element.name
}));
});
}
});
Preguntas relacionadas
Nuevas preguntas
javascript
Para preguntas sobre la programación en ECMAScript (JavaScript / JS) y sus diversos dialectos / implementaciones (excepto ActionScript). Incluya todas las etiquetas relevantes en su pregunta; por ejemplo, [node.js], [jquery], [json], etc.