2012-05-12 88 views
0

我試圖製作一個連接到我的SQL數據庫的網頁,並從表中提取信息並將其放入文本框中。它提取的信息取決於輸入到另一個文本框中的內容。本質上它是信息的「自動填充」。我很好奇這是否可能。帶動態信息的SQL文本框/自動填充文本框

要創建一個更好的理解這裏的文本框的佈局:

<html> 
<head> 
<?php 
$con = mssql_connect("abc", "123", "password"); 
if (!$con) 
    { 
    die('Could not connect: ' . mssql_get_last_message()); 
    } 

mssql_select_db("db1", $con); 

$result = mssql_query("SELECT * FROM FormData"); 
<head> 

<title>test</title> 

</head> 

<body> 
    <h1>test</h1> 

    <form action="#"> 

     <p>Enter ID</p> 

     <input type="text" name="ID"/> 
     <input type="text" name="NAME"/> 
     <input type="text" name="LASTNAME"/> 
     <input type ="button" value="submit" onclick="check(ID)" /> 



    </form> 
</body> 

這裏的ID將被輸入到一個文本框,然後一旦提交按鈕被按下,它會取其餘的信息從我的sql數據庫轉移到下一個框中。我甚至不知道這是否可能,我是否可以將Javascript與此結合使用。我搜查了但在這個問題上找不到多少幫助。

我甚至不確定它是否可以在SQL中執行「if」語句 - 每當我嘗試時,由於語法不正確而導致500錯誤。

+1

給你數據庫類型1st。在你的代碼上,它是mssql,在你的文章中,它是mysql。那麼是哪一個呢? – itachi

+0

對不起,我使用MsSQL - 抱歉,我犯了一個錯誤,它只是沒有Mssql標籤,到目前爲止在我的使用中,他們已經相對相似 –

回答

0

如果我的理解正確,您所需要做的就是在提交表單時輸入他們輸入的ID。

如果ID尚未提交(無論是他們第一次打的頁面,或者他們未能進入的ID),你不應該像這樣進行任何查詢,並創建一個空白$ row數組:

$row = array("ID" => "", "NAME" => "", "LASTNAME" => ""); 

然後你應該使用這個數組<input type="text" name="NAME" value="<?php echo $row['NAME']; ?>"/>填寫你的表單域。

如果這個ID已被提交,那麼你在你的SQL查詢中使用這個ID "SELECT * FROM FormData WHERE ID = $_POST['ID']"(注意:這是一個例子,你需要轉義POST數據以防止SQL注入)。

然後,您需要將此結果拖放到您的$ row數組$row = mysql_fetch_row($result)中,然後您的字段使用該數組填充該值。

整個過程可以通過AJAX完成,因此您不必執行完整頁面提交,但基於您的示例,我提供的解決方案應該足夠好。

+0

你提到它可能做到這一點,而無需提交表單?是否有可能解釋如何以這種方式做到這一點?我非常感謝。 –

+0

通過一個javascript事件,比如onblur或ID字段上的keyup,您可以調用一個javascript函數,該函數執行另一個PHP頁面的AJAX標註。此PHP頁面將該ID作爲post或get變量,並將NAME和LASTNAME作爲JSON編碼數組輸出。這個JSON輸出然後可以被你的AJAX標註函數拾取,解碼,然後你可以使用javascript在每個文本框中設置「value」屬性。 我在這裏描述的方法太複雜了,無法在問題評論中詳細討論!請閱讀此頁http://api.jquery.com/jQuery.post/。 –