0

大家,早安,

我有一个页面,通过使用以下代码为表中的每个结果应用模板,执行与数据库的默认连接、搜索和循环输出数据到页面:

<?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 的值改变了吗?- 对不起,如果这是一件简单的事情。

4

1 回答 1

0

首先,您必须添加一个操作(提交时要引用哪个文件),最好是在您的表单标签中添加一个方法类型。您还必须在 html 中包含 $productName 的值(从服务器端 php 给出)(查看 value 属性)

做这样的事情:

html格式:(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

我注意到您没有使用准备好的语句。在此处查找有关准备好的语句的更多信息:http ://www.php.net/manual/en/mysqli.prepare.php (使用它们!)

我希望这会以某种方式帮助你:-)

于 2013-06-02T17:42:03.310 回答