我是一個相對的新手,當涉及到PHP和做了一些搜索後,我似乎無法找到我的問題的答案。PHP搜索然後插入
我所擁有的是非常基本的,兩個表'人'和'案例'。我可以插入和搜索一個人(雖然我花了一些時間才能使它工作!)。現在,當涉及到一個'案例'時,我需要首先搜索一個人,我希望搜索結果仍然填寫在表單中,然後用戶將其餘的案例信息添加到表單中,然後提交。我試過將兩個代碼結合在一起,但我仍然沒有成功。
即使我能找到一種輸出方式來保持填充形式,這對我來說是一大進步。我已將輸出結果保留爲打印狀態,以便搜索結果顯示在頁面上。任何幫助將不勝感激。當前的搜索和插入代碼如下:
<?php
include 'connection.php';
$output ='';
//collect
if (isset($_POST['search'])) {
$searchq = $_POST['search'];
$searchq = preg_replace("#[^0-9a-z]#i","",$searchq);
$query = mysql_query("SELECT * FROM person WHERE forename LIKE '%$searchq%' OR surname LIKE '%$searchq%'") or die("Could not search");
$count = mysql_num_rows($query);
if ($count == 0) {
$output = 'There was no search results';
}else{
while($row = mysql_fetch_array($query)) {
$firstname = $row['forename'];
$lastname = $row['surname'];
$output .= '<div>'.$firstname.' '.$lastname.'</div>';
}
}
}
?>
<form action="basicsearch.php" method="post">
<input type="text" name="search" placeholder="Search for Persons..." onkeydown="searchq()1" />
<input type="submit" value=">>"/>
</form>
<?php print("$output");?>
<?php
$forename = $surname = $dateofbirth = $postcode = $addresslineone = $addresslinetwo = $towncity = $contactnumber="";
$forenameErr = $surnameErr = $dateofbirthErr = $postcodeErr = $addresslineoneErr = $addresslinetwoErr = $towncityErr = $contactnumberErr = "";
if ($_SERVER['REQUEST_METHOD']== "POST") {
$valid = true;
if (empty($_POST["forename"])) {
$forenameErr = "*First name is required";
$valid = false;
}
else {
$forename = test_input($_POST["forename"]);
}
if (empty($_POST["surname"])) {
$surnameErr = "*Last name is required";
$valid = false;
}
else {
$surname = test_input($_POST["surname"]);
}
//only testing forename/surname at the moment
if($valid){
include 'datasubmitted.php';
exit;
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post">
<div class="label">*First Name:
<div class="txtbox">
<input name="forename" type="text" id="txt" placeholder="Enter Your First Name." value="<?php echo $surname; ?>"/>
<span class="error"><p></p><?php echo $forenameErr; ?></span>
</div>
</div>
<div class="label">Last Name:
<div class="txtbox">
<input name="surname" type="text" id="txt" placeholder="Enter Your Last Name." value="<?php echo $surname; ?>"/>
<span class="error"><p></p><?php echo $surnameErr; ?>
</div>
</div>
<input type="submit" value="Submit" name="Submit" />
</form>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post">
<div class="label">*First Name:
<div class="txtbox">
<input name="forename" type="text" id="txt" placeholder="Enter Your First Name." value="<?php echo $surname; ?>"/>
<span class="error"><p></p><?php echo $forenameErr; ?></span>
</div>
</div>
<div class="label">Last Name:
<div class="txtbox">
<input name="surname" type="text" id="txt" placeholder="Enter Your Last Name." value="<?php echo $surname; ?>"/>
<span class="error"><p></p><?php echo $surnameErr; ?>
</div>
</div>
<input type="submit" value="Submit" name="Submit" />
</form>
一切順利, 克里斯
嗨,歡迎來到Stack Overflow。感謝發佈代碼,這是一個很大的幫助。然而,從你的問題來看,這段代碼現在在做什麼並不是很清楚。你會嘗試澄清你正在觀察的當前行爲以及期望的行爲嗎? – paulmelnikow 2015-02-07 23:30:49
謝謝你的回覆。當然,我有兩個單獨的代碼,一個用於插入,一個用於搜索。我希望它能夠搜索客戶端所需的功能,一旦搜索完成,它將填充其他文本框。因此,例如尋找姓氏會填充其他框,如姓氏,郵編,出生日期等,我不確定我會如何做到這一點。然後,我會將搜索結果的結果與用戶放入案例字段中的附加信息結合起來。 – Chris32 2015-02-08 03:11:52
@noa因此,首先您有一個存儲客戶信息的客戶表以及一個存儲案例信息的案例表。提交案例時,您必須先查找客戶,然後輸入案例詳細信息並保存。我目前有一個回聲列表,列出所有從搜索返回的標準列表,而不是我希望通過拉入表單的文本框,所以文本框姓將填充用戶姓氏,出生日期與搜索結果出生日期等。我希望這是有道理的。 – Chris32 2015-02-08 18:38:48