#php #codeigniter
#php #codeigniter
Вопрос:
Я сталкиваюсь с проблемой, связанной с прокруткой, при создании выпадающего списка с цепочкой.
Я использую php в качестве языка программирования и codeigniter в качестве фреймворка, вот коды
Просмотр кодов
<div class="form-row">
<div class="col-md-4">
<label for="inputBody">Body Number</label>
<select name="inputBody" id="inputBody" class="form-control" required="required">
<?php foreach ($body as $bd) { ?>
<option value="<?php echo $bd->bodynumkids ?>" onchange="ambildata(' <?php echo $bd->bodynumkids ?> ');"><?php echo $bd->bodynumkids ?></option>
<?php } ?>
</select>
</div>
<div class="col-md-6">
<label for="inputKiddie">Kiddies Name</label>
<input type="text" name="inputKiddie" id="inputKiddie" class="form-control" placeholder="ex. Super Cop" required="required">
</div>
<script type="text/javascript">
function ambildata(x) {
$.ajax({
type:'POST',
data :'input=' x,
url :'<?php echo base_url()."Repairpaint/chained" ?>',
dataType: 'json',
success: function(data){
console.log(data);
}
})
}
</script>
</div>
Коды контроллера
public function chained()
{
$dataKiddie = $this->input->post('input');
$where = array('bodynumkids'=> $dataKiddie);
$namakiddie = $this->Model_repairpaint->chaincb('kiddiejadi', $where)->result();
echo json_encode($namakiddie);
}
Результат не отображался в консоли, появлялись только эти предупреждения
This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects for further details and to join the discussion on related tools and features!
Ожидается, что данные из базы данных появятся в консоли, когда я нажму на выпадающий список. Может кто-нибудь здесь подсказать мне решение? Спасибо вам за помощь.
Комментарии:
1. Не уверен, что предупреждающее сообщение связано с каким-либо из этого кода. У вас есть кнопка / ссылка «Вернуться к началу» где-нибудь на вашей странице?
2. @kerbholz да, у меня есть такая кнопка, эта кнопка вызывает проблемы?
3. Я полагаю, что это так. В основном я вижу предупреждение «эффект позиционирования с прокруткой» на сайтах, которые отображают что-то, когда пользователь прокручивает определенную точку страницы (позиционирование с прокруткой). Попробуйте удалить / отключить JS для этой кнопки и посмотрите, появляется ли это предупреждение по-прежнему. Однако это, вероятно, не исправит вашу ошибку » Результат не отображался в консоли «.
Ответ №1:
Поместите ambildata()
функцию в <select>
тег, а не в <option>
<select name="inputBody" id="inputBody" class="form-control" required="required" onchange="ambildata(this.value)">
И второе, что некоторые изменения в вызове Ajax
url : '<?php echo base_url("Repairpaint/chained"); ?>'
или
url : '<?php echo base_url(); ?>' 'Repairpaint/chained';
Отправка данных
data : { 'input': x }
Комментарии:
1. Хай, я попробовал ваше решение, и проблема исчезла, но теперь я столкнулся с другой проблемой, которая говорит
Cross-Origin Request Blocked
, и я не знаю, что это значит. Вы знаете, что это такое? Спасибо2. Это на локальном или реальном сервере?
3. Это на локальном сервере
4. Попробуйте использовать
jsonp
в своем вызове Ajax. Это обойдет ту же политику происхождения. Подробнее learn.jquery.com/ajax/working-with-jsonp