2011-09-15 90 views
2

我的網站的每篇文章都有一個唯一的ID號碼。當用戶點擊閱讀文章時,我使用一個函數來獲取當前的文章ID,因此可以自動選擇下拉列表中相同值的選項。如何加載頁面加載的PHP文件(jQuery提供)

例如,如果我有ID的文章中點擊= 79

<option value="0" >Please Choose</option> 
<option value="97" <?php echo $postid == '97' ? 'selected="selected"' : '';?> >This is 97</option> 
<option value="98" <?php echo $postid == '98' ? 'selected="selected"' : '';?> >This is 98</option> 

我的下拉列表中會有「這是97」選擇的選項。

這裏的問題是,我使用的選擇時,如下顯示的形式的jQuery腳本:

<script language='JavaScript'> 
$(document).ready(function() { 
$('#termid').change(function() { 
var val = $(this).val(); 
$('#reservationdetails').empty().addClass('loading').load('../kratisis/forms/' + val + '.php', function(){$('#reservationdetails').removeClass('loading') }); 
}); 
}); 
</script> 

<div id="reservationdetails"></div> 

當用戶進入以閱讀文章97,所選的選項將是「這是97」,但所請求的PHP文件(從jQuery)將不會顯示,除非我選擇98,然後回到97.

我的問題是如何處理這個?我的意思是當用戶首先進入文章時如何顯示額外的php文件,但在下拉值更改時將其替換?

我想過使用<?php include("") ?>,但假設我在97上,然後點擊98將會有2個額外的php文件。

謝謝你的想法。

回答

1

您正在觸發關於更改的匿名函數,但您還需要在頁面加載時觸發它。摘要匿名函數來命名一個:

var loadPage = function(val) { 
    $('#reservationdetails') 
    .empty() 
    .addClass('loading') 
    .load('../kratisis/forms/' + val + '.php', function(){ 
     $('#reservationdetails').removeClass('loading'); 
    }); 
} 

然後將其綁定到change,並初步稱之爲:

loadPage($('#termid').change(function() { loadPage($(this).val()); }).val()); 

(你可以做到這一切在同一行,因爲.change()將返回jQuery對象。的#termid

+0

謝謝你,這就像魅力一樣!我已經接受你的答案。一個簡單的問題,有沒有什麼辦法,當我雙擊文本框(在我的情況下,我在文本框中使用datePicker)不顯示任何以前的建議? – EnexoOnoma

+0

您的意思是以前的建議與瀏覽器自動填充一樣嗎?不確定,這是一個非常不同的問題。通過一切手段,雖然開了一個新的問題! – Alex

+0

好的!還有11個去 – EnexoOnoma

1

你應該嘗試的jQuery trigger

$('#termid').trigger('change'); 

請務必使用AFTER觸發器已綁定回調函數更改事件雖然。

1

首先,這類事件應該是一個功能:

$(document).ready(function() { 
    load_article = function (article_id) { 
     $('#reservationdetails').empty() 
     .addClass('loading') 
     .load('../kratisis/forms/' + val + '.php', function() { 
      $('#reservationdetails').removeClass('loading') 
     }); 
    }; 
}); 

那麼爲什麼不使用ajax()而不是load()

$(document).ready(function() { 
    load_article = function (article_id) { 
     $.ajax({ 
      url: '../kratisis/forms/' + article_id + '.php', 
      beforeSend: function() { 
       $('#reservationdetails').html('').addClass('loading') 
      }, 
      success: function (data){ 
       // Assuming that #reservationdetails is the articles text area 
       $('#reservationdetails').html(data).removeClass('loading') 
      } 
     }); 
    }; 
}); 

現在,您可以在首頁加載時添加默認文章。並且也是變化事件:

$(document).ready(function() { 
    var default_article = 1; 

    // Article chaning function 
    load_article = function (article_id) { 
     $.ajax({ 
      url: '../kratisis/forms/' + article_id + '.php', 
      beforeSend: function() { 
       $('#reservationdetails').html('').addClass('loading') 
      }, 
      success: function (data){ 
       // Assuming that #reservationdetails is the articles text area 
       $('#reservationdetails').html(data).removeClass('loading') 
      } 
     }); 
    }; 

    // Add the change event to the select 
    $('#termid').change(function() { 
     load_article($(this).val()); 
    }); 

    // Sets a default article on first page load 
    load_article(default_article); 
});