Это все в вопросе на самом деле :)
Становится яснее, когда я расписываю по пунктам, что я хочу сделать, так что вот оно:
- У меня есть две формы на странице, форма поиска и форма «редактировать профиль». Оба в рабочем состоянии, по отдельности.
- Форма редактирования профиля разбивает строки моей таблицы MySQL на страницы, что позволяет мне редактировать значения для каждого столбца. В настоящее время настроено на включение всех строк (т. е. всех сохраненных профилей).
- форма поиска принимает любую из 17 различных переменных поиска и выполняет поиск в той же таблице, чтобы найти профиль или группу профилей.
- Я хочу иметь возможность вводить поисковый запрос (например, имя: «Боб»), запрашивать таблицу, как я это делаю, но использовать AJAX для возврата уникальных идентификаторов результатов в виде массива, хранящегося в переменной. Затем я хочу иметь возможность асинхронно передавать эту переменную в запрос формы моего профиля редактирования (форма поиска будет иметь кнопку отправки...), чтобы теперь я мог пролистать все строки в моей таблице (например, где имя включает «Боб '), и только эти строки.
Возможно ли вышеизложенное с рассматриваемыми языками? Может ли кто-нибудь помочь мне собрать их вместе?
Я нахожусь на промежуточной стадии с 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);
Итак, вот оно! Заранее благодарю за любую помощь!