当前位置: 首页 > 知识库问答 >
问题:

wordpress搜索查询与ajax

汲永嘉
2023-03-14

我正在wordpress中运行wpdb select查询,并从文本框中获取其参数。只要我按下搜索按钮,结果就会显示出来。但是我想在不刷新页面的情况下对ajax做同样的操作。我尝试了所有的方法,但是页面仍然刷新。

下面是我的代码

//Jquery代码

jQuery(document).ready(function() {  

   jQuery("#Submityourskill").click(function(){


   jQuery.post(yes.ajaxurl,{action : 'doit'},

    function( response) {//start of funciton


      // alert(response);
       //jQuery("#searchtextbox").val(response);
       jQuery("#result").append(response);
       jQuery("#textarea").html(response);
       return false;
    });//end of function


   }); // click button function finishing here


}); //end of main loop 

html

<form action="" method="post">
<div><input maxlength="200" name="secretcode" size="200" type="text" value="" placeholder="Type Here !" />
<input id="Submityourskill" name="Submit" type="submit" value="Search Record" /></div>
</form>
<div id="result"></div>

//php函数

function doit() {
if(isset($_POST['secretcode'])!= ''){
if($_POST['Submit']) {

$secretcode=$_POST['secretcode'];
global $wpdb;

$sql = "SELECT * FROM wp_store_locator WHERE sl_description='$secretcode'";
$results = $wpdb->get_results($sql) or die(mysql_error());
 foreach( $results as $result ) {

  echo $result->sl_description;

    }
 exit();
}
  }

下面是我使用过的其他php代码

PHP代码

add_action( 'wp_ajax_nopriv_doit', 'doit');
add_action( 'wp_ajax_doit', 'doit' );

下面是加入jQuery页面的代码

function add_myjavascript(){  
wp_register_script( 'globals', get_stylesheet_directory_uri() . "/js/ajax-implementationn.js", array( 'jquery' ) ); 
wp_enqueue_script( 'globals' );

// use wp_localize_script to pass PHP variables into javascript
wp_localize_script( 'globals', 'yes', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );

}  

add_action( 'init', 'add_myjavascript' )

谢谢大家,并向…致意!

共有1个答案

隆芷阳
2023-03-14

听一下表单的submit事件,让自己更轻松。除了单击“提交”按钮,还有其他提交表单的方法。

您正在寻找的是防止使用事件执行默认操作。preventDefault()

jQuery(document).ready(function() {  

    jQuery("#myform").submit(function(e){
        e.preventDefault();
        jQuery.post(yes.ajaxurl,{action : 'doit'}, function( response) {
            // alert(response);
            //jQuery("#searchtextbox").val(response);
            jQuery("#result").append(response);
            jQuery("#textarea").html(response);
            return false;
        });//end of function
    }); // submit form function finishing here
}); //end of main loop

并为您的表单提供一个id,以便您可以针对它:

<form id="myform" action="" method="post">
 类似资料:
  • 我的任务是使用lucene在我们的产品表中搜索。我已经创建了一个索引,正在使用带有多个字段的QueryParser进行搜索,但结果不是我所需要的。我有一个存储为LM10的产品,但如果搜索词是LM 10,我希望能够找到它,但如果搜索词是Fred LM10或Fred LM 10,它也必须能够匹配。你知道我如何在Lucene做到这一点吗。 提前谢谢

  • 我有以下格式的弹性搜索文档 } } 我的要求是,当我搜索特定字符串(string.string)时,我只想获得该字符串的FileOffSet(string.FileOffSet)。我该怎么做? 谢谢

  • 我正在创建一个旅游主题,我在其中创建了一些自定义帖子,如城市、地点、目的地和酒店,为了向这些自定义帖子添加更多信息,我创建了几个元框,其中包含一些元键,如地址、租金、酒店房间以及如何到达城市、目的地、,现在我在索引页上有一个搜索表单,可以根据酒店自定义帖子的自定义元键搜索酒店,我必须在函数中创建自己的自定义搜索函数。通过查看创建自定义搜索表单的wordpress教程,我只能有一个GET变量“?s=

  • 我正在LDAP服务器上工作。它有弹性搜索。我必须用一些Javascript代码(JSON格式)发送查询。 这是我的查询: 我试图打印所有结果,其中“server”=“server\u name”(该字段是server:server\u name…)。我认为关于弹性搜索的文档太小了。我找到了一些文档,但都是一样的,对新用户没有帮助。这个例子太简单了。 此查询返回所有结果,包括任何筛选器。 Ps:这就

  • 我试图为一个文档编制索引,该文档有三个字段:first_name、last_name、占领类型“keyword”,并分别有值XYZ、ABC和DEF。 我已经使用过滤器编写了查询,以便与和条件完全匹配,如下所示, 这必须返回一个文档,但不返回任何内容。 我对同一个操作有另一个查询, 这将返回一个文档。 根据Elasticsearch文档,我知道查询和筛选的区别在于筛选不会对结果打分。我不知道为什么第

  • 这是我得到的响应输出- 2018-11-20 18:25:34+0530:>{“查询”:{“布尔”:{“必须”:[{“匹配”:{“状态”:“活动”}},{“匹配”:{“is_published”:true}},{“匹配”:{“payed”:true}},{“match”:{“adverse_type”:“sell”}}]}},“排序”:[{“updated_at”:{“order”:“desc”}