Я пытаюсь получить данные на основе AJAX / JSON, возвращает массив из другого файла, где у меня есть цикл PHP While, но он возвращает только 1 данные и ничего больше.У меня есть 11 строк, чтобы показать.
Я пытался найти в Google, YouTube и многих других местах, что я делаю неправильно.Я использую последнюю версию jQuery и jQuery UI.Я пытался прочитать данные console.log в разных местах, и я также пытался с разными именами.Все еще ничего.
HTML:
$HTMLOUT .= '<div class="container">';
$HTMLOUT .= '<h4 class="text-center mt-3">Quick Search</h4>';
$HTMLOUT .= '<form>';
$HTMLOUT .= '<div class="form-row py-3">';
$HTMLOUT .= '<div class="col-12 col-md-3">';
$HTMLOUT .= '<select id="AJAX_ID_category" class="custom-select custom-select-sm">';
//$HTMLOUT .= '';
$HTMLOUT .= '</select>';
$HTMLOUT .= '</div>';
$HTMLOUT .= '<div class="col-12 col-md-3">';
$HTMLOUT .= '<select id="AJAX_ID_brand" class="custom-select custom-select-sm">';
//$HTMLOUT .= '';
$HTMLOUT .= '</select>';
$HTMLOUT .= '</div>';
$HTMLOUT .= '<div class="col-12 col-md-3">';
$HTMLOUT .= '<select id="AJAX_ID_model" class="custom-select custom-select-sm">';
//$HTMLOUT .= '';
$HTMLOUT .= '</select>';
$HTMLOUT .= '</div>';
$HTMLOUT .= '<div class="col-12 col-md-3">';
$HTMLOUT .= '<button type="submit" class="btn btn-danger" name="FORM_NAME_submit">Quick Search</button>';
$HTMLOUT .= '</div>';
$HTMLOUT .= '</div>';
$HTMLOUT .= '</form>';
$HTMLOUT .= '</div>';
PHP:
// (index.php) = Quick Search > Categories
if(isset($_POST['action']) && $_POST['action'] == "get_categories") {
//header('Content-Type: application/json'); // not needed, but a good idea to set!
$connect = mysqli_connect("localhost","root","","backup_job_v1_www_oppulense_com_backup_1");
$sql = "SELECT * FROM vehicle_category";
$result = mysqli_query($connect, $sql);
$json = array();
$json['ARRAY_get_categories']['count_total_returns'] = 0;
//while($row = mysqli_fetch_array($result)) {
while($row = mysqli_fetch_assoc($result)) {
$json['ARRAY_get_categories']['id'] = $row['category_id'];
$json['ARRAY_get_categories']['name'] = (!$row['category_name'] == NULL ? $row['category_name'] : "None");
$json['ARRAY_get_categories']['count_total_returns']++;
}
echo json_encode($json);
}
// (index.php) = Quick Search > Brands
if(isset($_POST['action']) && $_POST['action'] == "get_brands_from") {
header('Content-Type: application/json'); // not needed, but a good idea to set!
$connect = mysqli_connect("localhost","root","","backup_job_v1_www_oppulense_com_backup_1");
$sql = "SELECT * FROM vehicle_brand WHERE v_b_FK_category_id = ".$_POST['id_cat']."";
$result = mysqli_query($connect, $sql);
$json = array();
while($row = mysqli_fetch_array($result)) {
$json['ARRAY_get_brands']['id'] = $row['brand_id'];
$json['ARRAY_get_brands']['name'] = (!$row['brand_name'] == NULL ? $row['brand_name'] : "None");
}
echo json_encode($json);
}
// (index.php) = Quick Search > Models
if(isset($_POST['action']) && $_POST['action'] == "get_models_from") {
//header('Content-Type: application/json'); // not needed, but a good idea to set!
// Models
}
jQuery:
var base_route = "";
$(document).ready(function() {
get_categories();
});
function get_categories() {
var items = "<option selected value=''>SELECT CATEGORY</option>";
$.ajax({
type: "POST",
url: base_route+"inc/ajax-handler.php",
data: {action:"get_categories"},
dataType: 'JSON',
success:function(response){
if(response != null){
$.each(response, function(index, value){
console.log(index);
console.log(value);
if(value.name != 'None'){
items+="<option value='"+value.id+"'>"+value.name+"</option>";
}
});
$("#AJAX_ID_category").html(items);
}
}
});
}
function get_brands_from(category){
var items = "<option selected value=''>SELECT BRAND</option>";
$.ajax({
type: "POST",
url: base_route+"inc/ajax-handler.php",
data: {action:"get_brands_from", id_cat:category},
dataType: 'JSON',
success:function(response){
if(response != null){
$.each(response, function(index, value){
console.log(index);
console.log(value);
if(value.name != 'None'){
items+="<option value='"+value.id+"'>"+value.name+"</option>";
}
});
$("#AJAX_ID_brand").html(items);
$("#AJAX_ID_brand").selectmenu('refresh', true);
}
//$("#AJAX_ID_model").html("<option selected value=''>SELECT MODEL</option>");
//$("#AJAX_ID_model").selectmenu('refresh', true);
}
});
}
function get_models_from(category, brand){
var items = "<option value=''>Select a Model</option>";
$.ajax({
type: "POST",
url: base_route+"inc/ajax-handler.php",
data: {action:"get_models_from", id_cat:category, id_brand:brand},
dataType: 'json', success:function(response){
if (response != null){
$.each(response, function(index, value){
console.log(index);
console.log(value);
if(item.name.indexOf(' in ') < 0){
items+="<option value='"+value.name.split(' ').join('-').toLowerCase()+"'>"+value.name+"</option>";
}
});
$("#AJAX_ID_model").html(items);
$("#AJAX_ID_model").selectmenu('refresh', true);
}
}
});
}
$( "#AJAX_ID_category" ).selectmenu({
change: function( event, ui ){
var category = $(this).val();
get_brands_from(category);
}
});
$( "#AJAX_ID_brand" ).selectmenu({
change: function( event, ui ){
var brand = $(this).val();
var category = $("#sel_category").val();
get_models_from(category, brand);
}
});
$( "#AJAX_ID_model" ).selectmenu({
change: function( event, ui ){
var model = $(this).val();
window.location.href = location.href+"car/"+model
}
});
У меня есть 3 различных выбора / опции htmlкоробки.Я хочу извлечь категории, марки и транспортные средства.В первом выпадающем списке категорий я хочу просто извлечь каждую категорию, запустив AJAX.Я не в состоянии сделать это.Это дает мне 1 результат и больше ничего не возвращает, хотя я знаю, что у меня есть 11 различных строк в базе данных MySQL (PhpMyAdmin).
После выбранной категории я хочу показать параметры в следующем выбранномлиния, основанная на идентификаторе из категорий и после выбора категории бренда, я хотел бы показать транспортные средства, конечно же, на основе обоих идентификаторов.В этом случае теперь из категории И идентификатор бренда.
После того, как транспортное средство было выбрано, я бы хотел, чтобы кнопка отправки появлялась в виде постепенного появления через jquery.
Когданажата кнопка отправки, пользователь должен быть перенаправлен на страницу (details.php? id = x).
Обратите внимание, что код все еще не завершен, я только что боролся с этой частьюкода на некоторое время сейчас и до сих пор делают.Надеюсь, вы можете помочь.Заранее большое спасибо.