首先,您要提取用户选择的(最小)床位数。为此,您需要一些 javascript(或 jQuery, which is what I recommend)。
这里是监视选择元素值变化的代码。可能你不会使用那个事件,但是代码告诉你如何读取控件的值(以及如何正确使用selected 属性):
jsFiddle Demo
HTML:
<select name="bedrooms" id="bedrooms">
<option value="0" selected>Choose One:</option>
<option value="1">1 bed+</option>
<option value="2">2 beds+</option>
<option value="3">3 beds+</option>
</select>
<div id="resultsDiv"></div>
javascript/jQuery:
$('#bedrooms').change(function() {
var beds = $(this).val();
alert('Minimum beds: ' + beds);
});
一旦您将(最小)床位数保存到变量中,您就可以使用 AJAX 向服务器发送请求以执行搜索并返回结果:
$.ajax({
type: "POST",
url: "somephpfilename.php",
data: 'num_beds=' + beds,
success: function(recd){
$('#resultsDiv').html(recd);
}
});
上面会将变量beds的内容发送到PHP端,重新命名为num_beds。我更改了 var 名称,以便您可以看到名称是如何匹配的。在 PHP 端,检索床位数为:$_POST['num_beds']
然后您可以进行 mysql 搜索并在变量中构造一些 HTML 代码。完成后,只需回显该变量。 (请注意,我使用$out .= "more stuff"; 附加到变量内容,然后在完成时使用echo 变量。
PHP:somephpfilename.php
$min_beds = $_POST['num_beds'];
$query = "SELECT * IN `yourtablename` WHERE `cp_bedrooms` > '$min_beds' ORDER BY `cp_bedrooms`";
$results = mysql_query($query) or die(mysql_error());
$out = '
<table id="foundApts">
<tr>
<th>Num Beds</th>
<th>Address</th>
<th>Contact Phone</th>
<th>Rent</th>
</tr>
';
while ($row = mysql_fetch_assoc($results){
$out .= '
<tr>
<td>' .$row['cp_bedrooms']. '</td>
<td>' .$row['address_field_name']. '</td>
<td>' .$row['phonenum_field_name']. '</td>
<td>' .$row['rentprice_field_name']. '</td>
</tr>
';
}
$out .= '</table>';
echo $out;
PHP 回显的内容(即$out 变量的内容——在PHP 端构建的HTML)在AJAX 函数success: 的一个名为recd 的变量中接收。只需将该变量写入结果 div,您就会看到完整构建的结果表。 请注意,您必须在success: 函数中执行此操作。你会发现recd这个变量在这个函数之外是不存在的。
这是一个 jsFiddle 的无效链接,所有内容都放在一起。请注意,它不起作用,因为 jsFiddles 无法执行 AJAX 并且没有放置 PHP 的地方(我只是在注释中添加了 PHP,但它应该保存到 PHP 文件系统上的文件中)。 看看代码是如何构造的。
jsFiddle Code Sample
以下是关于 AJAX/PHP 的一些附加说明:
How to use jQuery in your code(只需要包含jQuery库,如One:所示)
Simple intro to AJAX