Javascript Wordpress Google再次按搜索表单自定义搜索
很抱歉再次分发给你们,我有一个问题还没有解决。。 提交搜索表单后如何调用javascript函数 工作流程应该是:当我在搜索中填充了一些内容并单击搜索按钮(searchform.php)后,它将发送表单并重定向,在搜索页面(search.php)中调用javascript函数(header.php)并显示结果 header.php的一部分:Javascript Wordpress Google再次按搜索表单自定义搜索,javascript,php,wordpress,Javascript,Php,Wordpress,很抱歉再次分发给你们,我有一个问题还没有解决。。 提交搜索表单后如何调用javascript函数 工作流程应该是:当我在搜索中填充了一些内容并单击搜索按钮(searchform.php)后,它将发送表单并重定向,在搜索页面(search.php)中调用javascript函数(header.php)并显示结果 header.php的一部分: <script> var renderSearchElement = function() { google.search.cse.
<script>
var renderSearchElement = function() {
google.search.cse.element.render(
{
div: "default",
tag: 'search'
});
google.search.cse.element.render(
{
div: "test",
attributes: {
disableWebSearch: true,
enableHistory: true},
tag: 'search'
});
};
window.__gcse = {
parsetags: 'explicit',
};
var loadElements = function() {
var cx = 'YYYYYYYYYYYYYYYYYYYYY:XXXXXXXXXX';
var gcse = document.createElement('script'); gcse.type = 'text/javascript'; gcse.async = true;
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//www.google.com/cse/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gcse, s);
}
var hndlr = function($response) {
for (var i = 0; i < $response.items.length; i++) {
var item = $response.items[i];
// in production code, item.htmlTitle should have the HTML entities escaped.
document.getElementById("content").innerHTML += "<br>";
document.getElementById("content").innerHTML += "<br> Title : " + item.title;
document.getElementById("content").innerHTML += "<br> ==================================== ";
if(item.pagemap.hreview)
{
for(var j=0; j < item.pagemap.hreview.length; j++) {
document.getElementById("content").innerHTML += "<br>" + j + ": " + item.pagemap.hreview[j].description;
}
document.getElementById("content").innerHTML += "<br>";
}
}
}
var curltestPHPonly = function()
{
$ch = curl_init();
// set url
curl_setopt($ch, CURLOPT_URL, "https://www.googleapis.com/customsearch/v1?key=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY&cx=XXXXXXXXXXXXXXXXXXXXXX:XXXXXXX&q=wine&callback=hndlr");
curl_exec($ch);
}
var searchdata;
var curltest = function() {
searchdata = document.getElementById('curlinput');
var urltest = document.createElement('script'); urltest.type = 'text/javascript'; urltest.async = true;
urltest.src = 'https://www.googleapis.com/customsearch/v1?key=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY&cx=XXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXX&q='+searchdata.value +'&callback=hndlr';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(urltest, s);
}
</script>
var renderSearchElement=函数(){
google.search.cse.element.render(
{
div:“默认”,
标签:“搜索”
});
google.search.cse.element.render(
{
分区:“测试”,
属性:{
disableWebSearch:没错,
enableHistory:true},
标签:“搜索”
});
};
窗口。\uuu gcse={
parsetags:'显式',
};
var loadElements=函数(){
变量cx='yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy;
var gcse=document.createElement('script');gcse.type='text/javascript';gcse.async=true;
gcse.src=(document.location.protocol=='https:'?'https:':'http:')+'//www.google.com/cse/cse.js?cx='+cx;
var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(gcse,s);
}
var hndlr=函数($response){
对于(变量i=0;i<$response.items.length;i++){
var item=$response.items[i];
//在生产代码中,item.htmlTitle应该转义HTML实体。
document.getElementById(“内容”).innerHTML+=“
”;
document.getElementById(“内容”).innerHTML+=“
标题:”+item.Title;
document.getElementById(“内容”).innerHTML+=”
=========================================================================”;
if(item.pagemap.hreview)
{
对于(var j=0;j”+j+”:“+item.pagemap.hreview[j].说明;
}
document.getElementById(“内容”).innerHTML+=“
”;
}
}
}
var curltestPHPonly=函数()
{
$ch=curl_init();
//设置url
curl_setopt($ch,CURLOPT_URL,”https://www.googleapis.com/customsearch/v1?key=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY&cx=XXXXXXXXXXXXXXXXXXXXXX:XXXXXXX&q=wine&callback=hndlr");
curl_exec($ch);
}
var数据;
var curltest=函数(){
searchdata=document.getElementById('curlinput');
var urltest=document.createElement('script');urltest.type='text/javascript';urltest.async=true;
urltest.src='1〕https://www.googleapis.com/customsearch/v1?key=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY&cx=XXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXX&q=“+searchdata.value+”&callback=hndlr';
var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(urltest,s);
}
和shearform.php
<form role="search" method="get" class="search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>" >
<input type="search" id="curlinput" class="search-field" placeholder="search" value="" name="s" />
<input type="submit" class="search-submit" value="submit" />
</form>
在search.php运行时调用函数可以吗?您的意思是将整个javascript代码放入search.php吗?无论脚本代码放在哪里,如果form action=“javascript:curltest()”它工作并在当前页面上显示现有的当前页面内容,而不是搜索页面。嗨,Jalpa。。。。也许我知道问题出在哪里:如果直接运行javascript函数,它将获取我表单的输入id=“curlinput”作为searchdata,但是如果更改为search.php,它将不起作用,因为php不使用“id”,而是使用“name”。。。。此外,我使用window.onload=curltest;search.php时自动运行的步骤loaded@lingmark好的,太好了!所以它可以按照你的意愿工作,或者仍然需要任何改变?仍然需要改变。。。。我删除了getElementById,并将变量“searchdata”设置为等于“s”,它现在可以工作了~~非常感谢你和aje帮我一把!!!谢谢!如果在search.php运行时调用我们的函数可以吗?您的意思是将整个javascript代码放入search.php中吗?无论脚本代码放在哪里,如果form action=“javascript:curltest()”它工作并在当前页面上显示现有的当前页面内容,而不是搜索页面。嗨,Jalpa。。。。也许我知道问题出在哪里:如果直接运行javascript函数,它将获取我表单的输入id=“curlinput”作为searchdata,但是如果更改为search.php,它将不起作用,因为php不使用“id”,而是使用“name”。。。。此外,我使用window.onload=curltest;search.php时自动运行的步骤loaded@lingmark好的,太好了!所以它可以按照你的意愿工作,或者仍然需要任何改变?仍然需要改变。。。。我删除了getElementById,并将变量“searchdata”设置为等于“s”,它现在可以工作了~~非常感谢你和aje帮我一把!!!谢谢!
<?php
get_header(); ?>
<section id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<div id="content">result shows here</div>
</main><!-- #main -->
</section><!-- #primary -->
<?php
get_footer();
?>