大家早上好,
我有一个页面,通过使用以下代码为表中的每个结果应用模板,执行数据库的默认连接,搜索和循环输出数据到页面:
<?php
$result = mysqli_query($con,"SELECT * FROM XXX WHERE Type='ABCD';");
while($row = mysqli_fetch_array($result))
{
include('includes/template-1234.php');
}
mysqli_close($con);
?>
在同一页面上,我有一个简单的HTML搜索框:
<div id="srch-form">
<form>
<input name="srch-box" type="text" id="srch-box" size="45" onClick="this.value='';" onFocus="this.select()" onBlur="this.value=!this.value?'Enter Product Name or SKU#':this.value;" value="Enter Product Name or SKU#">
<input type="submit" name="srch-btn" id="srch-btn" value="Search">
</form>
</div>
因为我只是学习PHP - 如何设置它以便在页面输入时仍然会发生默认操作,但是 - 在搜索框中提交某些内容时,当前页面中的数据会被提交的结果替换?我想我已经因为我已经为$ result分配了一个值以获取默认输出这一事实而感到困惑,如果搜索表单更改了$ result的值,那么PHP会自动刷新页面吗? $ result的值是否改变了? - 对不起,如果这是一件简单的事情。
答案 0 :(得分:0)
首先,您必须添加一个操作(提交时要引用的文件),最好是form-tag中的方法类型。您还必须在html中包含$ productName的值(从服务器端php给出)(查看值属性)
做这样的事情:
html-form:(Examplefile: yourhtmlform.php)
然后在你的php文件中获取来自特定元素的值:
<?php
//File querydb.php (example filename)
//Form is submitted and srch-box is set (only set when form is submitted)
if(isset($_POST['srch-box'])) {
$type = $_POST['srch-box']; //Get value of input-element
}
else {
$type = 'kingkong'; //Default type to search
}
$prepareQuery = mysqli_prepare($dbConnectionLink,"SELECT * FROM XXX WHERE Type=:type");
//...code to fetch results..
//You get a productName (or SKU) from db
if (isset($result['product_name'])) {
$productName = $result['product_name']; //or whatever your column is called
}
else {
$productName = '';
}
include('yourhtmlform.php'); //Observe that it must be php to echo out value of $productName in this included file
我注意到你没有使用prepared-statement。在此处查找有关预准备陈述的更多信息:http://www.php.net/manual/en/mysqli.prepare.php (使用它们!)
我希望这会以某种方式帮助你: - )