gpt4 book ai didi

php - 尝试在 wordpress 自定义页面中实现 jQuery 以进行搜索自动完成但不起作用

转载 作者:行者123 更新时间:2023-11-29 03:22:56 25 4
gpt4 key购买 nike

大家好,我刚开始开发网站,我是 wordpress、php、mysql、jquery 的新手,希望有人能帮助我解决我几个月来一直试图解决的以下问题,谢谢

-目标:让用户能够在搜索框中输入职位名称,搜索框会像谷歌搜索一样自动从数据库中填充相似的职位名称

-问题:类似职位的下拉列表未显示

-Environment:自定义页面在Wordpress,XAMPP,php,html,MYSQL database name 'jobsdatabase'

-开发者的编程能力:初学者,刚开始做网站5个月,已经尝试解决这个问题6周了

- 相关文件和位置:

  1. C:\xampp\htdocs\wordpress\wp-admin\admin-ajax.php
  2. C:\xampp\htdocs\wordpress\wp-content\themes\twentysixteen\page_search_job_form V6.php
  3. C:\xampp\htdocs\wordpress\wp-content\themes\twentysixteen\functions.php

    page_search_job_form V6.php

    $(document).ready(function()
    {

    jQuery('#searchform_jobtitle').keyup(ajaxsubmit);


    function ajaxsubmit()
    {

    var searchform_jobtitle = jQuery(this).serialize();



    jQuery.ajax(
    {
    url:'/wordpress/wp-admin/admin-ajax.php',
    //my admin-ajax.php folder directory is C:\xampp\htdocs\wordpress\wp-admin\admin-ajax.php,
    //i have also tried using "/wp-admin/admin-ajax.php" but it is not working
    method:"POST",
    action:"searchform_jobtitle",
    // i have tried using data:"searchform_jobtitle" as well but it is not working
    success:function(data)
    {
    jQuery("#jobtitle").fadeIn();
    jQuery("#jobtitle").html(data);
    },
    error: function(errorThrown)
    {
    alert(errorThrown);
    }

    });
    }
    });

    </script>
    </head>
    <body>

    <form action="/" form type="post" id="searchform_jobtitle" style="width:500px;">
    <input type="text" name="s" placeholder="Search...">
    </form>
    <div id="jobtitle"></div>


    </body>

functions.php

<?php

add_action('wp_ajax_searchform_jobtitle','searchform_jobtitle');
add_action('wp_ajax_nopriv_searchform_jobtitle','searchform_jobtitle');

function searchform_jobtitle()
{

$searchform_jobtitle = ucfirst($_POST["action"]);

$con = mysqli_connect('127.0.0.1','root','');


if(!$con)
{
echo 'Not connected to server';
$con->print_error();
}
else
{
echo 'connected to server';
}

if(!mysqli_select_db($con,'jobsdatabase'))
{
echo 'Database not selected';
$con->print_error();

}
else
{
echo 'Database selected';
}

if(isset($_POST["action"]))
{

$query = "SELECT * FROM job_info WHERE job_title like '%".$_post["action"]."%'";
$result = mysqli_query($con, $query);

if(mysqli_num_rows($result) > 0)
{

while($row = mysqli_fetch_array($result))
{
$output .= '<li>'.$row["job_title"].'</li>';

}
}
else
{
$output .= '<li>Job Not Found</li>';
}


echo $output;

mysqli_close($con);
die();

}

?>

Data in Mysql DB job_info as below:
job_title
----------
IT project manager
Business analyst
programmer
cleaner
house cleaner

最佳答案

为此,我将 id“searchform_jobtitle”放在输入本身上,因为您的 JS 在 keyup 上发送 AJAX,它不需要表单。

接下来,这是 AJAX 代码:

$.ajax({ 
url:'test.php',
method:"POST",
data: {
search: $('#searchform_jobtitle').val()
},
success: function(data) {
console.log(data);
$("#jobtitle").fadeIn();
$("#jobtitle").html(data);
},
error: function(errorThrown) {
console.log(errorThrown);
}
});

在数据部分发送一个对象,这样我就可以确定输入中的值作为 $_POST['search'] 的值发布,但您可以随心所欲地使用它。

现在我的 PHP 只是一个简单的测试:

$searchform_jobtitle = ucfirst($_POST["search"]);
echo $searchform_jobtitle;

这表明它有效。对于您的代码,您需要决定您希望它如何工作,因为它不知道如何调用您的特定方法,像这样的东西应该可以工作:

if (isset($_POST["search"])) {
jobTitleSearch();
}

function jobTitleSearch() {
$searchform_jobtitle = ucfirst($_POST["search"]);
// TODO
}

关于php - 尝试在 wordpress 自定义页面中实现 jQuery 以进行搜索自动完成但不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40956332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com