Я столкнулся с проблемой, которую не могу решить. Код работает отлично, но мне нужна еще одна функция.
Я использую jQuery для возврата результатов поиска по одному (несколько поисков без перезагрузки страницы). Но мне нужно, чтобы пользователь мог закрыть результаты поиска, которые ему не нужны, не покидая страницу и не теряя другие результаты.
Код состоит из
- isbn.tpl : введите номер isbn для
поиск
- ajax.php : получает результаты, возвращает
Результаты:
- ajax.tpl : отображает результаты внутри
isbn.tpl
Я почти уверен, что этот код должен быть внутри ajax.tpl. Мне нужно, чтобы в каждой строке была буква «X», которая будет закрывать этот отдельный результат поиска. Остальные результаты остаются. Итак, ajax.php генерирует случайную строку, которая начинается с «isbn_», я использую эту строку в ajax.tpl в ситуации. Затем код может закрыть что угодно с этим уникальным идентификатором.
Но я не знаю, является ли это лучшим способом сделать это, и я не знаю, как это сделать.
isbn.tpl:
<script src="http://code.jquery.com/jquery-1.5.js"></script>
<form method="post" action="ajax.php" name="searchISBN" id="searchForm">
<input type="text" name="isbn" placeholder="Search..." />
<input class="myaccount" id="doSearch" name="doSearch" type="submit" value="Search" />
</form>
<form name="buyback" method="post" action="buy.php">
<table id="result" class="search">
<tr><td>
<strong>Title</strong>
</td><td>
<strong>Author</strong>
</td><td>
<strong>ISBN</strong>
</td><td>
<strong>Price</strong>
</td><td>
<strong>Wholesale</strong>
</td>
</tr>
</table>
<br><br>
<input name="doCalc" type="submit" value="Calculate">
<input name="doCancel" type="submit" value="Cancel">
</form>
{literal}
<script>
// attach a submit handler to the form
$("#searchForm").submit(function(event) {
// stop form from submitting normally
event.preventDefault();
// get some values from elements on the page:
var $form = $( this ),
$term_input = $form.find('input[name="isbn"]'),
term = $term_input.val(),
//term = "isbn",
url = $form.attr( 'action' );
$.post( url, { doSearch: "Search", isbn: term } ,
function( data ) {
var content = $( data );
$( "#result" ).append( content );
}
);
$term_input.val('');
});
</script>
{/literal}
ajax.php (усечено):
/**
* Create random string for id="$string" in ajax
* This way, ajax can remove individual search results
* without reloading the page.
**/
$n = rand(10e16, 10e20);
$string = base_convert($n, 10, 36);
$string = "isbn_" . $string;
$smarty->assign('doSearch', $doSearch);
$smarty->assign('details', $details);
$smarty->assign('price', $price);
$smarty->assign('wholesale', $wholesale);
$smarty->assign('userWhole', $userWhole);
$smarty->assign('userPrice', $userPrice);
$smarty->assign('isbn', $isbn);
$smarty->assign('page', $page);
$smarty->assign('rate', $rate);
$smarty->assign('wrate', $wrate);
$smarty->assign('title', $title);
$smarty->assign('author', $author);
$smarty->assign('msg', $msg);
$smarty->assign('string', $string);
$smarty->display('ajax.tpl');
ajax.tpl:
{if $doSearch == "Search"}
{if $price != NULL}
<tr class="{$string}"><td>
{$title}
</td><td>
{$author}
</td><td>
{$isbn}
</td><td>
<input type="text" name="{$isbn}" size="3" value="{$userPrice}"><br>
</td><td>
{$userWhole}
</td></tr>
{/if}
{/if}
Спасибо за любую помощь !!