我使用PHP作为服务器端语言,并且有一个返回结果的表单。我目前正在使用jquery来检索结果并更新页面的一部分。没有jquery可以做到这一点吗?如果是的话,有什么好的例子吗?
我当前的jquery代码如下:
$.post("search_basic_results.php", $("#profile_form_id").serialize(),
function(data) {
$('#search_results').html(data);
});
});
我正试图找到一个无java脚本的替代方案,但我担心我需要再次重新加载整个页面。
没有jquery可以做到这一点吗?
是的。jQuery只是一个库。它提供了一些辅助函数,可以用更少的代码完成任务,并消除浏览器之间的差异。
还有其他库可供选择(我喜欢YUI3),jQuery的源代码是可用的,所以如果你想的话,你可以看到它在幕后做什么
我正在努力寻找一个无JavaScript的替代
如果没有客户端编程,就无法在浏览器中编辑文档。JavaScript是唯一被广泛支持的用于操作浏览器DOM的语言。
不过你可以使用iframe。
没有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;
没有jquery可以做到这一点吗?
当然,您可以使用普通的旧javascript AJAX。你必须写一些代码。但是,当你有一个使用jQuery的跨浏览器工作替代方案时,你为什么要这样做呢?
就在没有javascript的情况下操作DOM而言,如果不重新加载整个页面,就无法做到这一点。
重新加载页面有什么问题?
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 ?>