2017-01-23 40 views
0

我在網上看到一段代碼,它允許我查詢數據庫中的名稱,並且工作正常。它目前發送名稱,查詢它並將結果返回到樣式化莊園。但是,我希望能夠發送名稱+電子郵件的數據。我還是很新的這一切如此的解釋,將不勝感激:)下面是代碼:PHP,AJAX如何添加更多值

HTML表單:

<form id="searchform" class="form-horizontal" role="form" method="get"> 
    <div class="form-group"> 
    <label for="name" class="col-md-3 control-label">Name</label> 
    <div class="col-md-9"> 
     <input type="text" class="form-control" name="name" id="name" placeholder="Name"> 
    </div> 
    </div> 
    <div class="form-group"> 
    <label for="email" class="col-md-3 control-label">Email</label> 
    <div class="col-md-9"> 
     <input type="text" class="form-control" name="email" placeholder="Email"> 
    </div> 
    </div> 
    <div class="form-group"> 
    <!-- Button -->           
    <div class="col-md-offset-3 col-md-9"> 
     <button id="btn-search" type="submit" class="btn btn-info" value="send"><i class="fa fa-search" aria-hidden="true"></i> Search</button> 
    </div> 
    </div> 
</form> 

腳本的HTML中:

<script type="text/javascript"> 
    $(function() { 
    $("#searchform").bind('submit',function() { 
    var value = $('#name').val(); 
    $.post('scripts/searchFunction.php',{value:value}, function(data){ 
     $("#show").html(data); 
    }); 
    return false; 
    }); 
}); 
</script> 

searchFunction.php

<?php 
include 'connection.php'; 
$name = $_POST['value']; 
$query = 'SELECT * FROM `users` WHERE Username LIKE "%'. $name .'%"'; 
$result = $conn->query($query); 
if($result ->num_rows > 0){ 
    while($row = $result->fetch_assoc()){ 
    echo '<div class="row">'; 
    echo '<div class="col-md-4">';  
    echo '';  
    echo '</div>';  

    echo '<div class="col-md-7 col-md-offset-1">';  
    echo $row['Username'];  
    echo '</div>';  
    echo '</div>';  
    echo '<hr class="section-spacer"/>';  
    } 
} 
?> 
+0

對於每一個值,你想搜索你要添加到您的AJAX值這裏'{值:值}'然後到您的查詢這裏'$查詢=「SELECT * FROM'users'其中username喜歡「%」。$ name。'%'';' –

+0

[Little Bobby](http://bobby-tables.com/)說*** [你的腳本存在SQL注入攻擊風險。](http: //stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)***瞭解[編寫]​​(http://en.wikipedia.org/wiki/Prepared_statement)聲明爲[MySQLi](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)。即使[轉義字符串](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)是不安全的! [不相信嗎?](http://stackoverflow.com/q/38297105/1011527) –

+0

你能舉個例子嗎?像{value:value1,value2}一樣? – Chromatic

回答

1

對於您要搜索的每個值,您必須在此添加到您的AJAX值{value:value}例如{name: name, email: email }其中每個標識符都有一個值。

然後在這裏

$query = 'SELECT * FROM users WHERE Username LIKE "%'. $name .'%" AND Email LIKE LIKE "%'. $email .'%"' ; 

由於您使用在你的PHP頁面的$_POST數組,你應該有機會獲得你該陣列中通過AJAX發送的每個值查詢。

Basics of jQuery AJAX