Я пытаюсь получить записи во втором Dropbox на основе значения, выбранного в первом Dropbox. Мое значение в первом Dropbox загружается, но когда я выбираю случайное значение, я не получаю никаких значений во втором значении. Я проверил консоль в браузере и получаю сообщение об ошибке (внутренняя ошибка сервера 500).
Однако, когда это запущено на локальном хосте, оно работает абсолютно нормально. Эта ошибка возникает только при работе на живом сервере
У меня есть основной файл боковой панели, содержащий эту форму. и код ajax
$(document).ready(function(){
$('.dynamic').change(function(){
if ($(this).val() != '')
{
var select = $(this).attr("id");
var value = $(this).val();
var dependent = $(this).data('dependent');
var _token = $('input[name = "_token"]').val();
$.ajax({
url:"{{ route('pagescontroller.fetch') }}",
method:"POST",
data:{select:select, value:value, _token:_token, dependent:dependent},
success:function(result)
{
$('#'+dependent).html(result);
}
})
}
});
)};
мой код в контроллере: -
public function index(){
$pc = $this->getPostcodes();
$cl = $this->carFetch();
return view('home')->with('postcodes', $pc)->with('carLists', $cl);
}
public function getPostcodes(){
$postcodes = DB::table('postcodes')
->get();
return $postcodes;
}
public function carFetch(){
$carLists = DB::table('carlists')
->groupBy('Make')
->get();
return $carLists;
}
function fetch(Request $request)
{
$select = $request->get('select');
$value = $request->get('value');
$dependent = $request->get('dependent');
$data = DB::table('carLists')
->where($select, $value)
->groupBy($dependent)
->get();
$output = '<option value = "">Select '.ucfirst($dependent).'</option>';
foreach($data as $row)
{
$output .= '<option value = "'.$row->$dependent.'">'.$row->$dependent.'</option>';
}
echo $output;
}
И мои маршруты: -
Route::get('/', 'PagesController@index')
Route::post('sidebar/fetch', 'PagesController@fetch')->name('pagescontroller.fetch');
Не уверен, как он работает на локальном хосте, а не на живом сервере.
если вы используете сервер Windows ... попробуйте проверить строку подключения
@nakov Я проверил папку журналов, и нет файлов или файлов ошибок, которые необходимы для проверки журналов
Можете ли вы показать параметры сообщения, щелкнув запрос на публикацию

Пожалуйста, проверьте это
DB::table('carlists')
(or)
DB::table('carLists')
В carFetch вы используете имя таблицы как списки
но в выборке вы используете имя таблицы как carLists
Сервер Linux чувствителен к регистру :)
$request->get('select');
к
$request->input('select');
Я использую переменную $ cl и назвал ее carList->with('carLists', $cl); для получения записей в представлении. в представлении у меня: @foreach($carLists as $carMake) <option value = "{{$carMake->Make}}">{{$carMake->Make}} </option> @endforeach. Моя таблица данных известна как carList. Проблема в том, что он отлично работает на локальном хосте, но не работает на живом сервере.
Да, индекс (home.blade.php) загружается нормально. Первый раскрывающийся список также работает нормально, но когда я выбираю второй раскрывающийся список, он становится пустым.
да, у меня есть, это в коде `$ carLists = DB :: table ('carlists')` вместо $ data я использовал $ carList. вернуть записи, затем отправить их в другую функцию (индекс) в переменной и вернуть в представление. Он отлично работает на Localhost, но не на живой сервер
Вы вызываете функцию fetch () через вызов ajax, он отправит ответ, вы можете увидеть его в консоли, нажав f12 на вкладке сети ... какая у вас ошибка в консоли
ошибка в консоли 500 (внутренняя ошибка сервера)
эта ошибка возникает, когда я выбираю значение в первом раскрывающемся списке
И я просто запустил сайт на локальном хосте, чтобы проверить, нет ли на нем ошибок, и он работает как шарм. Никакой ошибки ...
Вам необходимо проверить файл .htaccess. любые синтаксические ошибки приведут к отображению сообщения 500 Internal Server Error. Чтобы убедиться, что неправильная конфигурация .htaccess является причиной ошибки 500 Internal Server, временно удалите или переименуйте файл .htaccess и проверьте.
Я уверен, что файл .htaccess в порядке. потому что через мою cPanel я скачал и установил пакет. все мои другие маршруты работают нормально. Ошибка 500, показывающая, когда действие срабатывает в первом раскрывающемся списке.
$ select = $ request-> post ('выбрать'); $ value = $ request-> post ('значение'); $ зависимый = $ запрос-> сообщение ('зависимый'); Не уверен, но попробуй с этим ..
Я попытался изменить путь от публикации к публикации, но все еще не работает. Ошибка, которую я получил: Не удалось загрузить ресурс: сервер ответил статусом 500 (внутренняя ошибка сервера)
Подскажите, пожалуйста, в чем проблема (что вы видели в console.info (результат))?
Привет, спасибо за помощь, но я понял проблему. это была глупая ошибка. С учетом регистра, как упоминалось ранее @shibon
Ошибка 500 означает, что у вас есть ошибка в вашем контроллере, поместите это в свой код JavaScript:
...
success:function(result)
{
$('#'+dependent).html(result);
},
error: function(result) {
console.info(result);
}
...
Итак, вы можете прочитать ошибку в консоли и опубликовать изображение в комментариях, чтобы исправить ее.
Пожалуйста, проверьте журнал laravel в папке
storage/logs, он может дать вам более подробную информацию об ошибке.