2012-01-07 2 views
1

Я использую PHP для своего языка на стороне сервера и имею форму, которая возвращает результаты. В настоящее время я использую jquery для получения результатов и обновления части страницы. Можно ли это сделать без jquery? Если да, то есть хорошие примеры?Могу ли я загрузить только часть страницы без java-скрипта?

Мой текущий код JQuery выглядит следующим образом:

$.post("search_basic_results.php", $("#profile_form_id").serialize(), 
    function(data) {  
     $('#search_results').html(data); 
    }); 
}); 

Я пытаюсь найти Java Script бесплатную альтернативу, но я боюсь, что нужно перезагрузить всю страницу.

ответ

3

Можно ли это сделать без jquery?

Да. jQuery - это просто библиотека. Он предоставляет вспомогательные функции, чтобы делать что-то с меньшим количеством кода и улавливать различия между браузерами.

Есть и другие библиотеки на выбор (я люблю YUI3), и исходный код для jQuery доступен, чтобы вы могли видеть, что он делает за кулисами, если хотите.

Я пытаюсь найти бесплатную альтернативу JavaScript

Вы не можете редактировать документ в браузере без стороне клиента программирования. JavaScript является единственным широко используемым языком для манипулирования браузером DOM.

Вы можете использовать iframe.

+0

Будет ли это рекомендуемым методом, если я не хочу продолжать перегружать свой заголовок и форму поиска? – Paul

+0

Если это всего лишь форма заголовка и поиска, то рекомендуемым методом было бы перезагрузить их. Они будут состоять из относительно небольшого количества HTML (все остальное можно кэшировать), а затраты (в том числе нарушение закладок, обмен ссылками и т. Д.) Серьезно перевешивают преимущества. – Quentin

+0

К сожалению, мой заголовок загружает изображение зарегистрированного пользователя каждый раз, когда он вызывается. Я предполагаю, что это не будет кэшироваться и требует вызова в БД каждый раз. Похоже на заголовок, который вы видите в Twitter. Похоже, что они могут использовать iframe для хранения заголовка ... – Paul

1

Можно ли это сделать без jquery?

Несомненно, вы можете использовать простой старый javascript AJAX. Вам придется написать бит кода. Но зачем вы это делаете, когда у вас есть альтернативная альтернатива jQuery?

Что касается манипулирования DOM без javascript, это невозможно сделать без перезагрузки всей страницы.

1

В чем проблема при перегрузке страницы?

if (count($_POST) == 0) 
{ 
    // var initialisation 
    $input_one = ''; 
    $input_two = ''; 
    // result wont be displaied 
    $display_search = false; 
} 
else 
{ 
    // this bit keeps track of the input fields 
    $input_one = $_POST['input_one']; 
    $input_two = $_POST['input_two']; 
    // result will be displayed 
    $display_search = true; 
    // do some stuff that search_basic_results.php would do 
} 
?> 
<form action="" method="post"> 
    <input name="input_one" type="text" value="<?=$input_one?>"/> 
    <input name="input_two" type="text" value="<?=$input_two?>"/> 
</form> 
<? if ($display search == true): ?> 
<!-- display stuff you want to display here/$('#search_results').html(data); equivalent --> 
<? endif ?> 
+0

Не совсем проблема, мне просто нравится, что мой заголовок и форма поиска не мигают каждый раз, когда страница нуждается в обновлении. Кажется немного более гладким, но, к сожалению, не работает, если java-скрипт отключен. – Paul

+0

Вы можете проверить, может ли браузер использовать JS, если он перенаправляет страницу, использующую JS. Но лично я бы предпочел, чтобы мой браузер заработал на долю секунды :) – Uboonto

2

Без Javascript его не представляется возможным.

Здесь приведен старый код Javascript.

if (window.XMLHttpRequest) 
{// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
} 
else 
{// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp.open("POST","search_basic_results.php",false); 
xmlhttp.send(); 
xmlDoc=xmlhttp.responseXML; 
Смежные вопросы