具有Url功能的自动表单帖子
Auto Form Post With Url Function
我的javascript有问题。我使用谷歌api,它包含ajax。这里的问题是,我需要从URL中获取值,比如http://examplesite.com/index.php?s=some+值。我需要自动搜索值。我试着这样做很长一段时间。然而,我做不到。我该怎么做?
这是我的提交表格:
<form id="searchForm" method="post">
<fieldset style="width: 520; height: 68">
<input id="s" type="text" name="s" />
<input type="submit" value="Submit" id="submitButton" />
这是我的javascript代码:
$(document).ready(function(){
var config = {
siteURL : 'stackoverflow.com', // Change this to your site
searchSite : true,
type : 'web',
append : false,
perPage : 8, // A maximum of 8 is allowed by Google
page : 0 // The start page
}
// The small arrow that marks the active search icon:
var arrow = $('<span>',{className:'arrow'}).appendTo('ul.icons');
$('ul.icons li').click(function(){
var el = $(this);
if(el.hasClass('active')){
// The icon is already active, exit
return false;
}
el.siblings().removeClass('active');
el.addClass('active');
// Move the arrow below this icon
arrow.stop().animate({
left : el.position().left,
marginLeft : (el.width()/2)-4
});
// Set the search type
config.type = el.attr('data-searchType');
$('#more').fadeOut();
});
// Adding the site domain as a label for the first radio button:
$('#siteNameLabel').append(' '+config.siteURL);
// Marking the Search tutorialzine.com radio as active:
$('#searchSite').click();
// Marking the web search icon as active:
$('li.web').click();
// Focusing the input text box:
$('#s').focus();
$('#searchForm').submit(function(){
googleSearch();
return false;
});
$('#searchSite,#searchWeb').change(function(){
// Listening for a click on one of the radio buttons.
// config.searchSite is either true or false.
config.searchSite = this.id == 'searchSite';
});
function googleSearch(settings){
// If no parameters are supplied to the function,
// it takes its defaults from the config object above:
settings = $.extend({},config,settings);
settings.term = settings.term || $('#s').val();
if(settings.searchSite){
// Using the Google site:example.com to limit the search to a
// specific domain:
settings.term = 'site:'+settings.siteURL+' '+settings.term;
}
// URL of Google's AJAX search API
var apiURL = 'http://ajax.googleapis.com/ajax/services/search/'+settings.type+'?v=1.0&callback=?';
var resultsDiv = $('#resultsDiv');
$.getJSON(apiURL,{q:settings.term,rsz:settings.perPage,start:settings.page*settings.perPage},function(r){
var results = r.responseData.results;
$('#more').remove();
if(results.length){
// If results were returned, add them to a pageContainer div,
// after which append them to the #resultsDiv:
var pageContainer = $('<div>',{className:'pageContainer'});
for(var i=0;i<results.length;i++){
// Creating a new result object and firing its toString method:
pageContainer.append(new result(results[i]) + '');
}
if(!settings.append){
// This is executed when running a new search,
// instead of clicking on the More button:
resultsDiv.empty();
}
pageContainer.append('<div class="clear"></div>')
.hide().appendTo(resultsDiv)
.fadeIn('slow');
var cursor = r.responseData.cursor;
// Checking if there are more pages with results,
// and deciding whether to show the More button:
if( +cursor.estimatedResultCount > (settings.page+1)*settings.perPage){
$('<div>',{id:'more'}).appendTo(resultsDiv).click(function(){
googleSearch({append:true,page:settings.page+1});
$(this).fadeOut();
});
}
}
else {
// No results were found for this search.
resultsDiv.empty();
$('<p>',{className:'notFound',html:'No Results Were Found!'}).hide().appendTo(resultsDiv).fadeIn();
}
});
}
function result(r){
// This is class definition. Object of this class are created for
// each result. The markup is generated by the .toString() method.
var arr = [];
// GsearchResultClass is passed by the google API
switch(r.GsearchResultClass){
case 'GwebSearch':
arr = [
'<div class="webResult">',
'<h2><a href="',r.unescapedUrl,'" target="_blank">',r.title,'</a></h2>',
'<p>',r.content,'</p>',
'<a href="',r.unescapedUrl,'" target="_blank">',r.visibleUrl,'</a>',
'</div>'
];
}
// The toString method.
this.toString = function(){
return arr.join('');
}
}
});
看看我的答案。正如您所看到的,设置get参数并不太困难。现在,我将向您展示如何获得一个get参数:
function getGetParameter(paramName)
{
var url = window.location.href;
if (url.indexOf(paramName + "=") >= 0)
{
var returnValue = url.substring(url.indexOf(paramName + "="));
if (returnValue.indexOf("&") >= 0)
{
returnValue = returnValue.substring(0, returnValue.indexOf("&"));
}
return returnValue.substring(returnValue.indexOf("=") + 1);
}
return null;
}
关于自动搜索值,您需要指定要搜索的内容和方式,因为这可以通过无限多种方式进行。
也许这就是问题所在:您试图使用API,但它不再可用。
Object {responseData: null, responseDetails: "This API is no longer available.", responseStatus: 403}
更多信息请点击此处:https://developers.google.com/image-search/v1/jsondevguide
现在,我正试图找到一个到版本2的迁移。
相关文章:
- 根据select选项元素将表单重定向到不同的URL
- 语义ui表单验证:图像url
- 使用Javascript/jQuery以编程方式将当前锚点/哈希/片段附加到任何表单操作url
- 表单提交问题,如何在我的URL末尾获得ID的值
- 在表单中使用查询URL
- 根据url填充表单选择下拉列表
- 使用GET方法通过AJAX成功提交表单后更改url
- 如果表单中的空字段使用Javascript从URL中排除
- 表单按钮在同一窗口中打开新的URL
- 代码点火器在访问 URL 时提交表单
- JavaScript 显示来自远程 URL 的表单
- 根据选择选项元素将表单重定向到不同的URL,并在电子邮件中获取表单详细信息
- 将随机数添加到登录表单的URL的目的是什么
- 如何根据选择下拉列表从表单重定向到 URL
- 发送不带JS的表单url
- 获取表单url没有提交
- 如何在表单URL中只传递一个数字
- 使用jquery更改表单url查询参数的输入更改状态
- pjax提交表单URL重定向
- 正则表达式获取 src 表单 URL