Требовать файла способствует тому, чтобы ajax оно не функционировало

В этих моментах я делаю динамическую таблицу с ajax и все функционирует хорошо. до тех пор, пока в div я не ввожу этикетку в компьютер <?php require("nav.php"); ?>, этот файл - характерное меню; вдруг у меня появляется в консоли firefox ошибка:

TypeError: $.ajax is not a function

и таблица исчезает.

Я храню в архиве inventario.php:

<?php 
    session_start();
        require("conexion.php");
        $permiso = $_SESSION['u_tipo'];
        $id_usuario = $_SESSION['id_usuario'];
        if($_SESSION['logged']=='yes')
        { 
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="js/jquery-3.2.1.min.js"></script>
    <link rel="stylesheet" type="text/css" href="css/bootstrap.css">

    <script type="text/javascript"> 

     $(document).ready(function(){

            function obtener_datos(){
                $.ajax({
                    url: 'mostrar_inventario.php',
                    method: 'POST',
                    data: {permiso: '<?php echo $permiso; ?>'},
                    success: function(data){
                        $('#result').html(data)
                    }
                })
            }

            obtener_datos();

        $(document).on('click','#add',function(){

            var serial = $('#serial_add').text();
            var color = $('#color_add').text();
            var marca = $('#marca_add').text();
            var tipo = $('#tipo_add').text();
            var costo = $('#costo_add').text();
            var estado = $('#estado_add').text();

            $.ajax({
                url: 'insertar.php',
                method: 'POST',
                data: {serial: serial, color: color, marca: marca, tipo: tipo, costo: costo, estado: estado},
                success: function(data){
                    obtener_datos();
                }
            })
        })


        function actualizar_datos(id, texto, columna){
            $.ajax({
                url: 'actualizar.php',
                method: 'POST',
                data: {id: id, texto: texto, columna: columna},
                success: function(data){
                    obtener_datos();
                }
            })
        }

        $(document).on('blur','#nombre_usuario',function(){
            var id = $(this).data('id_usuario');

            var nombre = $(this).text();

            actualizar_datos(id, nombre, 'nombre_users');

        })

        $(document).on('blur','#apellido_usuario',function(){
            var id = $(this).data('id_apellido');

            var apellido = $(this).text();

            actualizar_datos(id, apellido, 'apellido_users');

        })

        $(document).on('click','#Eliminar',function(){

            var id = $(this).data('id_eliminar');
            $.ajax({
                url: 'eliminar.php',
                method: "POST",
                data: {id: id},
                success: function(data){
                    obtener_datos();
                }

            })
        })

     });

    </script>

</head>
<body>
<div>
    <?php 
    require("nav.php");
    ?>
</div>
    <div id="container">
        <div id="result"></div>
    </div>
</body>
<?php
}
else{
    header("location:../index.php");
}
?>
</html>

Archivo nav.php:

<!DOCTYPE html>
<html lang="es">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" type="text/css" href="css/bootstrap.css">
    <link rel="stylesheet" type="text/css" href="css/font-awesome.min.css">
    <link rel="stylesheet" type="text/css" href="scss/estilos.scss">

  </head>
  <body>
    <section class="bienvenidos">
      <header class="encabezado">
        <div class="container float-right">
          <nav class="navbar navbar-toggleable-md navbar-light bg-faded">
            <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation">
              <span class="navbar-toggler-icon"></span>
            </button>
            <a class="navbar-brand" href="#">
              <p id="tipo">#tipodeusuario</p>
            </a>
          <div class="collapse navbar-collapse" id="navbarTogglerDemo02">
            <ul class="navbar-nav mr-auto mt-2 mt-md-0">
              <li id="li_perfil" class="nav-item">
                <a class="nav-link" href="perfil.php">
                  <i class="fa fa-id-badge" aria-hidden="true"></i> &nbsp&nbspPerfil 
                </a>
              </li>
              <li id="li_inventario" class="nav-item">
                <a class="nav-link" href="inventario.php"> 
                <i class="fa fa-bicycle" aria-hidden="true"></i> &nbsp&nbspInventario
                </a>
              </li>
              <li id="li_perdidas" class="nav-item">
                <a class="nav-link" href="c_perdidas.php">
                <i class="fa fa-chain-broken" aria-hidden="true"></i> &nbsp&nbspCiclas perdidas
                </a>
              </li>
              <li class="nav-item">
                <a class="nav-link" href="salir.php"> 
                <i class="fa fa-user-times" aria-hidden="true"></i> &nbsp&nbspSalir
                </a>
              </li>
            </ul>
          </div>
          </nav>
        </div>
      </header>
    </section>
    <!-- jQuery first, then Tether, then Bootstrap JS. -->
    <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
  </body>
</html>

Что я могу делать?

1
задан 27.06.2017, 18:20
1 ответ

Ты dirГ© какие-то вещи на тебе cГіdigo:

  1. С jQuery 3 эта funciГіn переходит к тому, чтобы быть устаревшей. И он, я думаю, она mГЎs использованная в jQuery:

     $(document).ready(function(){
       ...
    

ты она Можешь идти заменяя уже на эту:

     $(function() { ...

Видеть по этому поводу documentaciГіn jQuery , и важное Замечание из этот ответ aquГ - в Stackoverflow .


  1. Сообщение ошибки: TypeError: $.ajax is not a function показывает с ясностью, что есть проблема относительно твоих призывов к ajax vГ - в jQuery. Который podrГ, - чтобы проистекать, в который:

    в. Она librerГ - в jQuery не estГЎ включенная в момент делания призыва к Аяксу. В этом чувстве я revisarГ - в это:

ВїRealmente есть у тебя librerГ - в jQuery в локальной так называемой папке js? Проверяет, что та же самая была правильна, или, включает ее librerГ - в чиновника, используя cdn, свойственный jQuery. ВїPara quГ© ты хочешь иметь помещение одна librerГ - по отношению к, который ты можешь включать без проблемы с Вашего источника?:

<script   src="https://code.jquery.com/jquery-3.2.1.min.js"></script>

  1. Проблема nav.php: Если nav.php так sГіlo часть , которая должна быть включенной в другие , я документирую, Вїpor quГ© ты создаешь nav.php как будто это был независимый документ, с Вашими DOCTYPE, Вашими этикетками <head>, <body>, inclusiГіn снова верных librerГ-схвати , и т.д. включив или Когда один просит nav.php в другом документе tendrГЎs montГіn у дублированных вещей.

  1. Особенно, terminarГ - в мои призывы к $ajax из-за точки с запятой. Например aquГ-:

         $.ajax({
                    url: 'mostrar_inventario.php',
                    method: 'POST',
                    data: {permiso: '<?php echo $permiso; ?>'},
                    success: function(data){
                        $('#result').html(data)
                    }
                });
    
1
ответ дан 24.11.2019, 07:57
  • 1
    Не необходимо, чтобы они закончились точно и запятая, хотя я лично использую точку с запятой всегда, и мне не нравится использовать ; частично как OP, javascript он гибкий в этой теме, и я не думаю, что это проблема этого вопроса – Daniel Pérez 27.06.2017, 18:56
  • 2
    И есть причины, чтобы включать книжные магазины помещение, возможно, что OP не присоединен к Интернету все время, или возможно, что он не хочет быть должным зависеть от cdn jquery или от какого-то другого сервера. – Daniel Pérez 27.06.2017, 18:58
  • 3
    @DanielPé rez помни, что это librerí в стороны клиента. Если говорится о pá gina Веб, иметь librerí в на нашем собственном сервере он añ adir без необходимости ты грузишь в сервер, когда có я говорю, что возможно снабжать ссылками с первоначального CDN. В этом случае присоединить или нет к Интернету не имеет ningú n чувство. Ademá s, не кажется случай, так как есть inclusió n librerí схвати как bootstrap, что sí они делаются используя внешний url. – A. Cedano 27.06.2017, 19:00
  • 4
    Я согласовываюсь с тобой, но дело в том, что есть причины для этого, возможно давать случай (хотя мало вероятный), что по какому-то разуму cdn jquery был упавшим и не доступным, это может быть техника только того, чтобы зависеть от самого сервера для всех ресурсов. – Daniel Pérez 27.06.2017, 19:02