2016-12-04 77 views
2

嗨,大家好,我剛開始開發網站和我新的WordPress,PHP,MySQL,jQuery,希望有人能夠足以幫助我解決下面我試圖解決了幾個月的問題,謝謝試圖在wordpress自定義頁面中實現jQuery的搜索自動完成,但不工作

-Objective:爲了使用戶在搜索框中鍵入的職位和搜索框會自動從數據庫中下降填充類似職稱下來就像谷歌搜索

- 問題:WordPress的,XAMPP,PHP,HTML,MYSQL數據庫名稱 'jobsdatabase'

-Developer的編程能力自定義頁面:降下來了類似職位沒有顯示

-Environment新手,剛開始開發的網站了5個月,試圖解決這個問題,連續6周

- 相關的文件和位置:

  1. C:\ XAMPP \ htdocs中\ WordPress的\可溼性粉劑管理員\ ADMIN-ajax.php
  2. C:\ XAMPP \ htdocs中\ WordPress的\可溼性粉劑內容\主題\ twentysixteen \ page_search_job_form V6.php
  3. Ç :\ XAMPP \ htdocs中\ WordPress的\可溼性粉劑內容\主題\ 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

回答

0

所以,爲此,我把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); 
    } 
}); 

發送對象的數據部分,因此我確信,在輸入值被公佈爲$彥博值[「搜索」 ],但你可以做任何你喜歡的事情。現在

我的PHP只是一個簡單的測試:

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

這都說明它的工作原理。對於你的代碼,你將要決定如何你想要的工作,因爲這是不會知道如何喚起你的特別的方法,這樣的事情應該工作:

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

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

Maytch你好,謝謝你的迴應。根據您的建議,我已經添加了輸入ID =「searchform_jobtitle」,並修改了我的jQuery中的「URL」以指向該目錄,我得到了mysql的響應,不幸的是,響應不像預期的那樣。數據庫條目 – Francis96

+0

我實際上已經嘗試過使用您的代碼「數據:{ search:$('#searchform_jobtitle').val() },但mysql仍然迴應0 – Francis96

+0

我也嘗試了一些過去一週的其他更改但仍然沒有工作,請幫助,謝謝 – Francis96