3
值變量通過AJAX獲取結果這一切都在真正的問題:)使用PHP來查詢數據庫,查詢數據庫再次使用的初始變量
它更清晰,當我把它放在要點什麼,我想要做的,所以這裏是:
- 我在頁面上有兩種形式,搜索表單和'編輯配置文件'窗體。兩者都是單獨運作的。
- 編輯配置文件表格通過我的MySQL tbl的行分頁,允許我編輯每列的值。目前設置爲包括所有行(即所有存儲的配置文件)。
- 搜索表單採用17個不同的搜索變量中的任何一個,並搜索同一表以查找配置文件或一組配置文件。
- 我希望能夠輸入搜索詞(例如Name:'Bob'),像我在做的那樣查詢tbl,但使用AJAX將結果的唯一ID作爲存儲在變量中的數組返回。然後,我希望能夠異步地將該變量饋送到我的編輯配置文件表單查詢中(搜索表單將具有一個提交按鈕...),所以我現在可以翻閱我表格中的所有行(例如,名稱中包含'Bob '),只有那些行。
上述可能的語言有問題嗎?任何人都可以幫我把它們拼在一起?
我處於PHP和MySQL的中間階段,但是絕對是AJAX的新手。我只用它在一個定義好的區域顯示一個文本字符串 - 正如在各處的演示中看到的那樣:)因此,對待我像一個五歲的孩子,非常感謝!
這裏是我當前的搜索查詢和編輯配置文件的形式,如果他們在所有幫助:
編輯配置文件形式:
//pagination base
if (isset($_GET['page'])) { $page = $_GET['page']; }
else { $page = 1; }
$max_results = 1;
$from = (($page * $max_results) - $max_results);
$total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM profiles"),0);
$total_pages = ceil($total_results/$max_results);
echo '<span id="pagination">' . 'Record ' . $page . ' of ' . $total_results . ' Records Returned. ';
if($total_results > $max_results)
{
if($page > 1)
{ $prev = ($page - 1);
echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$prev\"><input type='submit' value='<<' /></a>";
}
if($page == 1)
{ echo "<input type='submit' value='<<' />"; }
if($page < $total_pages)
{ $next = ($page + 1);
echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$next\"><input type='submit' value='>>' /></a>";
}
if($page == $total_pages)
{ echo "<input type='submit' value='>>' />";
}
}
echo '</span></p>';
?>
// the query, currently selecting all but which I would have include a WHERE clause (WHERE ProfileID = $profileid...)
<?php
$sql = ("SELECT * FROM profiles
ORDER BY ProfileID
LIMIT $from, $max_results");
$rs = mysql_query($sql);
while($row = mysql_fetch_array($rs))
{
$profile = $row['ProfileID'];
?>
<form id="profile-form" action="profile-engine.php" method="post">
<input type="hidden" name="formid" value="edit-profile">
<input type="hidden" name="thisprofile" value="<?php echo $profile; ?>">
<table id="profile-detail" class="profile-form">
<tr>
<td>
<label for="profile-name">Name:</label>
<?php
$nameresult = mysql_query("SELECT ProfileName
FROM profiles
WHERE ProfileID = '$profile'");
$row = mysql_fetch_array($nameresult);
?>
<input type="text" class="text" name="profile-name" id="profile-name" value="<?php echo $row['ProfileName']; ?>" />
</td>
//goes on in this vein for another 16 inputs :)
的搜索查詢:
//connection established
$query = "SELECT * FROM profiles";
$postParameters = array("name","height","gender","class","death","appro","born","tobiano","modifier","adult","birth","sire","dam","breeder","owner","breed","location");
$whereClause = " WHERE 1 = 1";
foreach ($postParameters as $param) {
if (isset($_POST[$param]) && !empty($_POST[$param])) {
switch ($param) {
case "name":
$whereClause .= " AND ProfileName LIKE '%".$_POST[$param]."%' ";
break;
case "height":
$whereClause .= " AND ProfileHeight='".$_POST[$param]."' ";
break;
case "gender":
$whereClause .= " AND ProfileGenderID='".$_POST[$param]."' ";
break;
//more cases....
}
}
}
$query .= $whereClause;
$result = mysql_query("$query");
$values = array();
while ($row = mysql_fetch_array($result)) {
$values[] = $row['ProfileID'];
}
/*
//just me checking that it worked...
foreach($values as $value => $id){
echo "$id <br />";
}
*/
mysql_close($con);
所以,你有它!預先感謝任何幫助!
哇 - lemmie嘗試了這一點。謝謝! – Eamonn 2011-05-18 08:06:57
@robot大聲笑,愛字段值:) – Eamonn 2011-05-18 08:10:19
@robot你可以展示如何將它用於多個搜索字段(我不知道Javascript的語法)嗎?助教。我也不確定該怎麼去服務腳本 - 它看起來像我使用硬編碼的值,而不是生成的(這只是我,我知道!)... – Eamonn 2011-05-18 08:49:04