2013-09-27 58 views
0

我想在我正在開發的頁面的地址簿中進行搜索。地址簿是另一頁的內容,此頁面上的地址簿的網址爲http://example.com/start.php。此通訊錄有自己的搜索字段,我將用於我的頁面。 我寫了下面的搜索表單:搜索表單的空值

<form action="http://example.com/start.php" method="post" target="_blank"> 
<div> 

<input type="hidden" value="adress" name="cmd" /> 
<input id = "adressinput" name="search" type="text" title="Search in the adress book [ctrl-f]" accesskey="f" value="adress book" /> 
<input id="refresh" title="refreshnow" name="refresh" type="image" src="icons/Downloads/arrow-circle-single.png" class="iconbutton"/>        

</div> 
</form> 

的問題是,當我在窗體的文本框,並且點擊該圖標refreshnow,頁面http://example.com/start.php(地址簿)後寫的東西是顯示,但這個頁面的搜索字段仍然有一個空值,當然,我沒有得到任何結果。

這不是我的第一個搜索表單。我寫了類似的表格,他們工作,所以,我不知道爲什麼它不工作。

回答

0
  1. 從表格中刪除目標屬性,地球上絕對沒有理由再使用彈出窗口。

2.)您使用的是哪種腳本語言?如果PHP引用$_POST['search']或者您意外引用$_GET['search']

+0

我正在使用PHP作爲腳本語言,你是對的我不需要目標屬性,只有通過搜索才能看到更好的結果 – user2667837

0

此行

<input id = "adressinput" name="search" type="text" title="Search in the adress book [ctrl-f]" accesskey="f" value="adress book" /> 

應該

<input id="adressinput" name="search" type="text" title="Search in the address book [ctrl-f]" accesskey="f" value="<?php echo $_POST['search']; ?>" /> 

,或者你可以做一些更聰明的

if (isset($_POST['search'])) { 
    ?> 
    <input id="adressinput" name="search" type="text" title="Search in the address book [ctrl-f]" accesskey="f" value="<?php echo $_POST['search']; ?>" /> 
    <?php 
} else { 
    ?> 
    <input id="adressinput" name="search" type="text" title="Search in the address book [ctrl-f]" accesskey="f" value="adress book" /> 
    <?php 
} 

這是一個有點亂,你也可以在使用變量inputvalue,以便文件中的行數將會少一些,例如

if (isset($_POST['search'])) { 
    $value = $_POST['search']; 
} else { 
    $value = 'adress book' 
} 

<input id="adressinput" name="search" type="text" title="Search in the address book [ctrl-f]" accesskey="f" value="<?php echo $value; ?>" /> 

$_POST['search']將包含輸入的搜索項的值(一旦提交表單即是。

這是您將需要查詢數據庫以匹配其內容的搜索結果的價值。

+0

你不能只回顯'$ _POST'變量,你需要先使用'isset()'。<?php if(isset($ _ POST ['search'])){echo $ _POST ['search'];}?>'雖然我認爲你的可能更多的是目標,OP從一開始就不完全清楚。 – John

+0

@John,不知道你的意思,我正在用'isset'檢查'POST'變量? – martincarlin87

+0

如果你不檢查變量,它會拋出一個小警告。有時黑客會嘗試省略GET/POST變量,以查看服務器在嘗試確定潛在攻擊向量時會報告的錯誤。您的代碼唯一應該在HTTP 4xx錯誤中報告,並記錄*每個* PHP錯誤,無論多麼微不足道。 – John