javascript
  • jquery
  • 2014-01-12 4 views 0 likes 
    0

    Почему name не определено?Значение атрибута элемента html не определено

    $('#langs li').click(function(){ 
        var name = $(this).attr('value'); 
        $.ajax({ 
         type: "POST", 
         url:'test.php', 
         data: 'name='+name, 
         success:function(raspuns){ 
          //$('#content1').html(raspuns); 
          var ras = raspuns; 
          $.ajax({ 
           type: "POST", 
           url: "index.php", 
           data: 'ras='+ras; 
          )}; 
         } 
        }); 
    }); 
    
    +0

    POST и "ras =" (который выглядит как GET) выглядит странно (но я не уверен). – Sliq

    ответ

    0

    Вы можете проверить несколько вещей: убедитесь, что у вас есть данные перед отправкой. у вас есть атрибут value на li? или если вы хотите получить содержимое li, используйте html() или txt(). Но, вероятно, вы хотите получить значение входного поля внутри li ?. затем используйте $ (this) .find ("input"). val(), если у вас есть только один вход внутри. Затем необходимо проверить:

    1) Посетите http://example.com/test.php, чтобы убедиться, что он правильно откликнулся. У вас может быть ошибка в php, или ссылка может быть недоступна.

    2) Ваш адрес выглядит следующим образом: http://example.com/test.php? Это также прекрасно, если у вас есть виртуальный хост на вашем локальном компьютере, например http://example.local/test.php. Но это не сработает, если у вас есть что-то вроде

    http://localhost/mysite/test.php 
    

    , если вы не исправите свой путь в ajax-вызове на полную ссылку.

    3) Убедитесь, что ваш javascript не сработает до отправки. Я имею в виду, можете ли вы сделать предупреждение (имя)? Вы также можете использовать beforeSend() выше успеха, чтобы проверить, правильно ли вы заканчиваете данные.

    4) Убедитесь, что вы не пытаетесь выполнить запрос ajax для перекрестного домена, поскольку вы не можете сделать это с помощью POST.

    5) Могу попробовать использовать «/test.php» вместо «test.php», хотя это не проблема, я думаю.

    Вы также можете использовать консоль, чтобы узнать, что происходит.

    0

    li элементы не поддерживают атрибут value. Возможно, вы ищете ввод или содержимое li через .html().

    Смотрите в этом примере, что name не определено: http://jsbin.com/IzOXiJOZ/2/edit

    +0

    Thx для справки !!! –

    1

    Если вы хотите сказать, что raspuns кажется неопределенным, может быть, это потому, что вы не echo свой ответ от test.php?

    test.php

    ... 
    echo 'this is my response'; 
    

    AJAX вызов

    $.ajax({ 
        ... 
        success: function(raspuns) { 
        // raspuns == 'this is my response' 
        } 
    }); 
    

    А также, если вы передаете данные POST, я думаю, было бы лучше, если бы вы передать объект JSON , например:

    $.ajax({ 
        url: 'test.php', 
        type: 'POST', 
        data: {name: name}, 
        ... 
    }); 
    
    Смежные вопросы