2016-04-27 30 views
3

我有一個由其jobID列出的作業數據庫,我設置的是一個搜索框,您可以在其中輸入jobID編號,併爲此提供相關詳細信息數。我想要做的是能夠輸入jobID的前幾個數字,並讓它過濾包含這些數字的所有jobID。包含一些文本的PHP數據過濾器表

這可能沒有JavaScript或j查詢?

這是我的搜索框以及對這些分別輸入的結果,表代碼..

<script type="text/javascript"> 
    function search() { 
    var jobSearch = document.getElementById('jobSearch').value; 
    window.location.href = ('search.php?jobID='+jobSearch); 
} 
</script> 

<input id="jobSearch" placeholder="Search Job No.."><button onClick="search();">Search</button></input> 

而且成績表..

<table class="auto details" data-type="table" data-other="" data-filter="jobs.jobID=<?php echo $_GET['jobID']; ?>" data-columns="jobID,customerName,machineName,staffName,operation,notes,operationStatus,pallets"></table> 
+0

你想要的結果自動填充你在打字呢?如果你想用嚴格的PHP來做到這一點,你不能。你需要在javascript中編寫一個函數來監聽一個事件,並且當一個鍵被按下時,你將一個ajax調用提交給一個單獨的PHP頁面,該頁面搜索數據庫中的結果。您可以使用SQL語法'LIKE'%{YOURSEARCH}'' –

+0

Hi @AdamJosephLooze,輸入關鍵字時不需要填充它。僅用於輸入在下一頁中使用的變量。我設置了搜索。在提交搜索時打開的php頁面,它將輸入的關鍵字作爲變量來過濾表格。 – Eksepshon

+0

然後,你應該創建一個HTML表單:

'複製並粘貼到你的頁面,並給它一個鏡頭。如果這是你正在尋找的是。 –

回答

1

您可以使用dataTable插件,會做分類,尋找你。只需看下面的鏈接示例

https://www.datatables.net/ 

你不需要重新配置,從而much.Just下載數據表插件CSS和JS添加到您的PHP文件和腳本只需添加以下兩行

$(document).ready(function() { 
    $('#example').DataTable(); //replace the #example and put your table ID here 
}); 

希望它help.Thanks

+0

就像桌子的功能一樣,我認爲這有點太過分了,需要大量重新配置我的網站才能使用它。 – Eksepshon

0

您可以簡單地使用HTML表單。我可以用你的javascript看到你想通過URL傳遞變量。這可以使用表單中的GET方法完成。

<form method="GET" action="search.php"> 
    <input type="text" name="jobID" placeholder="Enter Job ID"> 
    <button type="submit" value="Submit">Submit</button> 
</form> 

然後,你的搜索頁面上,你可以使用這樣的事情,

使用PDO:

<?php 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$dbname = "jobs"; 
// Connect to DB 
$pdo = new PDO('mysql:host=' . $servername . ';dbname=' . $dbname, $username, $password); 

// Process search 
if(isset($_GET['jobID'])) { 
    $jobID = trim(stripslashes(strip_tags(preg_replace('/\D/', '', $_GET['jobID'])))); 
    $stmt = $pdo->prepare("SELECT * FROM jobs WHERE jobID LIKE '%$jobID%' LIMIT 100"); 
    $stmt->execute(); 
    $jobs = ""; 
    while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
     $jobs .= '<p>' . $row["jobID"] . '</p>'; 
    } 
} 
?> 
<div class="jobs-list"> 
    <?php print $jobs; ?> 
</div> 

或者使用的mysqli:

<?php 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$dbname = "jobs"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

if(isset($_GET['jobID'])) { 
    $jobID = trim(stripslashes(strip_tags(preg_replace('/\D/', '', $_GET['jobID'])))); 
    $sql = "SELECT id, firstname, lastname FROM MyGuests"; 
    $result = $conn->query($sql); 

    $jobs = ""; 
    if ($result->num_rows > 0) { 
     while($row = $result->fetch_assoc()) { 
      $jobs .= '<p>' . $row["jobID"] . '</p>'; 
     } 
    } else { 
     $jobs = '<p>0 results</p>'; 
    } 
    $conn->close(); 
} 
?> 
<div class="jobs-list"> 
    <?php print $jobs; ?> 
</div> 

對於mysqli的,$conn是你的db連接的名字。對於PDO,$pdo是數據庫連接的名稱。

我建議在運行SQL之前使用以下內容來清理變量。

$jobID = trim(stripslashes(strip_tags(preg_replace('/\D/', '', $_GET['jobID']))));

0

好了,你已經有加載搜索頁面,並預置一個變量作業ID到URL的腳本。

現在的search.php頁面上,你需要添加

if(isset($_GET['jobID'])) { // this checks if job id was set 
 

 

 

 
//and place your code here to grad bata from the database and output 
 
//below is just an example of getting data from the database: 
 
$jobID = mysql_real_escape_string($_GET['jobID']); 
 

 
$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 
 
$query = "SELECT * from jobs WHERE job.id like '%{$jobID}%' ORDER by ID DESC LIMIT 50,5"; 
 
if ($result = $mysqli->query($query)) { 
 

 
    /* извлечение ассоциативного массива */ 
 
    while ($row = $result->fetch_assoc()) { 
 
     echo $row['title']; 
 
    } 
 
    $result->free(); 
 
} 
 

 

 
}

相關問題