html-тег «data-url» не работает при добавлении html из вызова ajax

#php #jquery #ajax #data-uri

#php #jquery #ajax #data-uri

Вопрос:

Я знаю из названия, что это, вероятно, очень запутанно, поэтому позвольте мне объяснить.

На этой странице у меня есть что-то вроде этого:

   <div id="district_courses">
                    <?php foreach ($courses as $course) {
                        if ($course->group_type == 'D') {  ?>
                            <div id="course_nav_<?php echo $course->id; ?>" class="menu-item course" data-url="<?php echo base_url('/admin/uploads/course/' . $course->id); ?>">
                                <div><?php if ($isDistrict == TRUE) {
                                            echo $course->title . " <sapn style='font-size: 12px;'>(" . $course->pub_name . ")</span>";
                                        } else {
                                            echo $course->title;
                                        } ?></div>
                            </div>
                    <?php }
                    } ?>
                </div>
 

который работает нормально, и URL-адрес данных активен при нажатии на элемент. Однако теперь есть функция поиска, в которой я беру данные и помещаю их в пустой div на странице

 <div id="searched_courses">
                </div>
 

Вот вызов ajax, который получает данные поиска. Как вы видите, я перебираю результаты в javascript, затем помещаю код в div выше, но теперь кажется, что с этим кодом URL-адрес данных неактивен. Я не могу щелкнуть по элементу и запустить URL-адрес данных?

 $("#search_courses").click(function() {
    var searchquery = $('#course_search_input').val();
    $.ajax({
        type: "POST",
        url: '/admin/uploads/course-search',
        data: {
            query: searchquery
        },
        success: function(response) {
            var courses = response.courses;
            var i;
            var html = '';
            for (i = 0; i < courses.length; i  ) {
                //console.log(courses[i]['id']);
                html  = '<div id="course_nav_'   courses[i]['id']   '" class="menu-item course" data-url="/admin/uploads/course/'   courses[i]['id']   '"> 
                        <div>'   courses[i]['title']   ' <sapn style="font-size: 12px;">('   courses[i]['pub_name']   ')</span></div> 
                    </div>';
            }


            $('#super_district_courses').hide();
            $('#district_courses').hide();
            $('#school_courses').hide();
            $('#all_courses').hide();
            document.getElementById("searched_courses").innerHTML = html;
            
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            console.log("Error: "   errorThrown);
        }
    });
});
 

Комментарии:

1. Тот, который работает, использует base_url, а другой — нет. Это может быть вашей проблемой.

2. Да, это была моя первая мысль, и я вставил ее туда. По-прежнему не работает.

3. Вы пробовали это так? data-url="<?php echo base_url('/admin/uploads/course/'); ?>' courses[i]['id']

4. нет. Я попробую это сейчас. Но я попробовал просто жестко закодировать его следующим образом: data-url=»<?php echo base_url(‘/admin/uploads/course/93′); ?>’ »

5. не сработало, но интересная попытка