SQL Query onsubmit - 更改现有结果

时间:2013-06-02 16:44:21

标签: php mysql forms onsubmit

大家早上好,

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

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

1 个答案:

答案 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 (使用它们!)

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