2016-03-23 4 views
2

Я пытаюсь отобразить таблицу базы данных, используя php. Когда страница загружается, мне нужно показать все данные таблицы, и когда я выбираю выпадающий список, я должен отображать только связанные с ним данные, т. Е. Используя условия. Мне не нужен sql-запрос или PHP-код для него, мне просто нужен jquery.Как выполнить ajax, если страница загружается

$(document).ready(function() 
{ 
    $('#myHref').change(function() 
    { 
       var value = $('#myHref').val(); 
       $.get('get_projectName.php',{id:value},function(data) 
       { 
        $('#projectDetail').html(data); 
       }); 
    }); 
    $('#myHref').on('change',function() 
    { 
     $('#projectDetail').fadeIn(); 
    }); 
}); 

Здесь при выборе выпадающего меню id="myHref" выполнить get_projectName.php, но мне нужно выполнить get_projectName.php когда страница загрузки, прежде чем выберите в раскрывающемся списке, так что я могу отобразить все данные

PLZ Помощь !!

+0

так что вы можете использовать в JavaScript, как' вар get_prj =; ' – Yash

+0

Так что, если вы хотите выполнить команду' get_projectName.php' перед событием изменения, что вы будете передавать как идентификатор? –

+0

share html – itzmukeshy7

ответ

0

Похоже, что ваш элемент (например, #myHref) не существует в момент вашего скрипта. И когда вы хотите показать все данные о загрузке, просто вызовите функцию, например.

function getData(){//ajax here} 
getData(); 

работает. Есть ли ошибки? или что-то, что может помочь?

+0

нет, никаких ошибок нет. теперь я могу выводить данные, когда я выбираю выпадающее меню, используя предложение where. N работает отлично. Теперь мне нужно отображать все, когда страница загружается без условия условия в запросе .... –

+0

См. Отредактированный ответ :) –

+0

ok, я использую '$ ('# myHref'). On ('change', function() { $ ('# projectDetail'). FadeIn();' –

0
function getData(value) { 
    params = {}; 

    if value 
     params.id = value; 

    $.get('get_projectName.php', params, function (data) { 
     $('#projectDetail').html(data); 
    }); 
} 
// Get Data onLoad 
getData($('#myHref').val()); 

$('#myHref').on('change',function(){ 
    getData($('#myHref').val()); 
    $('#projectDetail').fadeIn(); 
}); 
+0

Как использовать params в get_projectName.php –

+0

Текущая реализация - getData (id_params) , но вы можете легко ее изменить, удалив блок значений if и измените на 'params = value || {}; 'вы можете легко передать объекты в качестве параметров – kiro112

1

В приведенном выше коде вы пытаетесь передать выбранный идентификатор в файл php через $ .get(), когда выпадающее меню было изменено. это хорошо, если вы хотите отображать все данные при загрузке страницы, тогда вы должны иметь еще один php, который возвращает все данные в db и не принимает значения. И писать код, как показано ниже

$(document).ready(function() { 
     $.get('get_allDataFromDb.php',function(data) 
      { $('#projectDetail').html(data); 
     }); 
     $('#myHref').change(function(){ 
      var value = $('#myHref').val(); 
      $.get('get_projectName.php',{id:value},function(data) 
       { $('#projectDetail').html(data); 
      }); 
     }); 
     $('#myHref').on('change',function(){ 
      $('#projectDetail').fadeIn(); 
     }); 
}); 
+0

' $ .get ('get_allDataFromDb.php', function (data) {$ ('# projectDetail'). html (data); }); donot works' –

0

Попробуйте как этот

$(document).on("change", "#myHref" , function() { 

// Your Code Here 

}); 

дайте мне знать, в случае, если он по-прежнему не работают.

+0

это выполнит данные, когда я выбираю dropdown, также мне нужно выполнить, когда я выбираю nothng, т.е. когда страница загружается –

+0

в таком случае, что вы можете сделать, сделайте некоторое functio n, которые получают данные динамически, как вы watnt, и когда ваш документ загружен, что вы можете сделать, это вызвать событие для вашего изменения выпадающего списка. –

+0

да, я хочу, чтобы именно то, что bt не может сделать. пример будет лучше всего и оценен –

2

BT Мне нужно выполнить get_projectName.php когда страница загрузки, прежде чем выберите в раскрывающемся списке, так что я могу отобразить все данные

Так что я вижу, что вы хотите, чтобы сначала загрузить выполнить get_projectName.php один раз при загрузке страницы, а также выполнять это, если в раскрывающемся списке есть какие-либо изменения. Так что вы можете сделать, как показано ниже

$(document).ready(function() { 
    //make a call initially on page load 
    var firstOptionValue = $("#myHref option:eq(1)").val() // take first option value as default 
    $.get('get_projectName.php',{id:firstOptionValue},function(data) 
    { 
     $('#projectDetail').html(data); 
    }); 


    $('#myHref').change(function(){ 
     var value = $('#myHref').val(); 
     $.get('get_projectName.php',{id:value},function(data) 
     { 
      $('#projectDetail').html(data); 
     }); 
    }); 

    $('#myHref').on('change',function(){ 
     $('#projectDetail').fadeIn(); 
    }); 
}); 

Рефакторинг кода, вы можете просто вытащить общую логику в функцию и вызвать эту функцию, передав требуемое значение, см ниже

$(document).ready(function() { 
    //make a call initially on page load 
    var firstOptionValue = $("#myHref option:eq(1)").val(); // take first option value as default 
    GetProjectDetails(firstOptionValue); 


    $('#myHref').change(function(){ 
     var value = $('#myHref').val(); 
     GetProjectDetails(value); 
    }); 

    $('#myHref').on('change',function(){ 
     $('#projectDetail').fadeIn(); 
    }); 

    function GetProjectDetails(value){ 
    $.get('get_projectName.php',{id:value},function(data) 
    { 
     $('#projectDetail').html(data); 
    }); 
    } 
}); 
+0

thnks, gr8 idea bt это будет работать, когда сначала я выберу что-нибудь из раскрывающегося списка и снова выберите первый вариант. Bt в начале ничего не отображает –

+0

Я попытался, когда nothng выбрал then if if (id = 'value_of_first_option') {do somethng} else {do ​​next thng} ' –

+0

В начале вам нужно передать значение по умолчанию для вашего php-кода правильно? Я просто показал вам, как передать первое значение по умолчанию. Вы можете изменить свою логику на то, что вам подходит –

0

Хорошо, вот мой еще один ответ, что вы можете вызвать какое-то событие после того, как наш документ будет готов.

надеюсь, что это будет полезно для вас.

<script> 
      $(document).ready(function(){ 

       //Function for AJAX Call 
       function GetData(){ 

        var value = $('#myHref').val(); 
        $.get('get_projectName.php',{id:value},function(data) 
        { 
         $('#projectDetail').html(data); 
         // 
         $('#projectDetail').fadeIn(); 
         // Any other code here you want to write. 

        }); 

       } 

       $('#myHref').change(); 
       //OR you can use 
       $("#myHref").trigger("change"); 

      });    
      $(document).on("change", "#myHref" , function() { 
       // Call the function as change evvent is triggered 
       GetData(); 
      }); 
     </script> 
+0

вы также можете поместить функцию GetData за пределы document.ready –

+0

сообщите мне, что вы не понимаете нигде. –

Смежные вопросы