我在php中有一个AJAX设置来返回和显示来自DB的一些数据:
$("#sub_shops").click(function(){
var range_start = $("#start_shops").val();
var range_end = $("#end_shops").val();
$.ajax({
url:'process_shops.php',
data:{start:range_start,end:range_end},
type:'POST',
success:function(data){
$("#result_shops").html(data);
}
});
});
第 #start_shops
页和#end_shops
页有两个输入,填写数据并单击#sub_shops
页面将输入中的值发送到process_shops.php
。处理后,它以#result_shops
显示结果:
<div id="result_shops"></div>
问题:
如果为#start_shops
和#end_shops
输入设置了默认值,如何将其值发送到process_shops.php
并在初始页面加载时以#result_shops
显示处理的结果?
提前感谢!
首先将代码分解为一个函数:
function updateResultShops()
{
var range_start = $("#start_shops").val();
var range_end = $("#end_shops").val();
$.ajax({
...
}
然后从单击处理程序调用它:
$("#sub_shops").click(updateResultShops);
并在文档加载中!
$(document).ready(updateResultShops);
现在,任何初始值都将在页面加载时以及每次单击时立即发送。容易!
如果值已预先加载到输入中,我认为最简单的方法是
$("#sub_shops").click(function(){
// your code...
}).trigger('click');
您可以将匿名函数转换为函数。
function loadAjax()
{
/* Commented this part since it wont run on the snippet.
var range_start = $("#start_shops").val();
var range_end = $("#end_shops").val();
$.ajax({
url:'process_shops.php',
data:{start:range_start,end:range_end},
type:'POST',
success:function(data){
$("#result_shops").html(data);
}
});
*/
alert("blablabla");
}
$("#sub_shops").click(loadAjax); //Add event to click
$(document).ready(loadAjax); //Add event to run when page loads.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div style="background-color: black; height: 50px; width: 50px;" id="sub_shops"></div>
但是,如果您希望将该功能留在单击中...您可以这样做:
$(document).ready($("#sub_shops").click);