|
|
|
| уже почти все работает, осталось самое малое.
есть функция:
<script language='JavaScript1.1' type='text/javascript'>
<!--
function clicknow()
{
var search = document.form.typeflash.value;
<?
$q = "SELECT * FROM $table3 ORDER BY flashname ";
$result = @mysql_query($q);
$number = MYSQL_NUMROWS($result);
$k=0;
while($sublist = mysql_fetch_array($result))
{
echo "this.form.markflash.options[$k] = new Option(\"".$sublist['flashname']."\",\"".$sublist['flashname']."\");\n";
$k++;
}
?>
alert("это " + search + "<?=$number?>");
}
//-->
</SCRIPT>
|
вопрос такой:как сделать запрос $q с использование переменной search т.е.
$q = "SELECT * FROM $table3 WHERE typeflash='search ' ORDER BY flashname ";
знаю что записано неправильно. подскажите как исправить??? | |
|
|
|
|
|
|
|
для: Spenser
(16.11.2006 в 10:42)
| | На стороне клиента никак. Нужно перегружать страницу, отправляя через GET-параметр значение переменной search и выполнять запрос на сервере с использованием $_GET['search']. | |
|
|
|
|
автор: ita (16.11.2006 в 13:48) |
|
|
для: cheops
(16.11.2006 в 12:50)
| | Попытка номер 2..
не получится у тебя передать переменную так, как ты хочешь.
есть 2 варианта
1. перезагрузка страницы, передача доп параметра..
2. использование Ajax.
по ajax.. как работает в 2х словах.. JS отправляет по http запрос скрипту на сервере, скрипт возвращает результат своей работы(XML,HTML..), JS получает результат работы скрипта. дальше JS меняет что-то на странице.. все. иначе никак. | |
|
|
|
|
|
|
|
для: ita
(16.11.2006 в 13:48)
| | а где можно пример посмотреть про ajax для данной задачи? или если не сложно приведите примет здесь. | |
|
|
|
|
|
|
|
для: cheops
(16.11.2006 в 12:50)
| | а примерчик можно на эту тему? | |
|
|
|
|
|
|
|
для: Spenser
(17.11.2006 в 12:13)
| | Все запросы выполняются через яваскрипт и php в фоновом режиме без всяких дополнительных элементов (XMLHTTP и прочей лабуды).
Вот держи пример файлов яваскрипта и запроса к нему в фоновом режиме.
Вот код скрипта .js который посылает запросы на твой php файл
url = document.location.href;
xend = url.lastIndexOf("/") + 1;
var base_url = url.substring(0, xend);
function bgsend (url) {
if (url.substring(0, 4) != 'http') {
url = base_url + url;
}
var jsel = document.createElement('SCRIPT');
jsel.type = 'text/javascript';
jsel.src = url;
document.body.appendChild (jsel);
}
вот функция яваскрипта которая пошлет запрос из твоей формы методом GET на твой файл php
function get_from_php(strsearch){
var url = 'http://www.site.ru/jvs/search.php?find=' + escape(strsearch);
bgsend (url);
return false; //чтобы не отправлять форму в никуда
}
вот так из формы эту функцию вызываешь.
У тебя должен на странице быть элемент ид которого в этом примере равен 'return_code_element'
В него будет вставлен обработанный твоим файлом php текст.
...
<td id="return_code_element">
</td>
<td>
<form name="frm_search" action="" method="GET" onsubmit="return get_from_php(frm_search.strsearch.value);">
<input type="text" name="strsearch">
</form>
</td>
Вот код твоего файла php который обработает запрос и вернет результат в страницу не перегружая ее
if(isset($_GET["find"]) && !empty($_GET["find"]))
{
$findstring=$_GET["find"];
//тут делаешь с поиском что хочешь, потом типа весь результат обработки поиска ты присвоил переменной и нужно ее вывести на странице.
?>
el = document.getElementById('return_code_element');
//если у тебя только текст, то просто присваиваешь его
el.innerText = '<?php print addslashes($findstring); ?>';
//а если сложный html код, то всавляеш его методом, но тогда элемент ид которого 'return_code_element' должен быть <td> либо другой поддерживающий вставку html таким методом.
el.insertAdjacentHTML 'afterBegin', '<?php print addslashes($findstring); ?>';
<?php
}
|
Если где то есть глюки с опечатками или синтаксисом, то сорри, я в блокноте пишу на работе и не могу проверить синтаксис.
Сам подправиш где не точночти, смысл общий ясен думаю.
[поправлено модератором] | |
|
|
|
|
|
|
|
для: XPraptor
(17.11.2006 в 12:34)
| | смысл я понял, только один вопрос остался:
где надо написать вот это (в каком файле):
url = document.location.href;
xend = url.lastIndexOf("/") + 1;
var base_url = url.substring(0, xend);
function bgsend (url) {
if (url.substring(0, 4) != 'http') {
url = base_url + url;
}
var jsel = document.createElement('SCRIPT');
jsel.type = 'text/javascript';
jsel.src = url;
document.body.appendChild (jsel);
}
|
| |
|
|
|
|
|
|
|
для: Spenser
(17.11.2006 в 12:55)
| | это любой .js файл, который ты потом в своих страницах подключаешь в head. Вот так например:
<html>
<head>
<title>...</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<meta http-equiv="Content-Language" content="ru">
...
<script src="jvs/main.js" type="text/javascript"></script>
</head>
... | |
|
|
|
|
|
|
|
для: XPraptor
(17.11.2006 в 12:59)
| | спасибо! сейчас буду пробывать. если что, то спрошу.в любом случае о результате сообщу :) | |
|
|
|
|
|
|
|
для: Spenser
(17.11.2006 в 13:02)
| | Функцию get_from_php() тоже можешь пихать ф этот же файл а можешь для разных страниц свои наборы функций создавать. | |
|
|
|
|
|
|
|
для: XPraptor
(17.11.2006 в 12:59)
| | а id="return_code_element" можно поставить и на <select> ? | |
|
|
|
|
|
|
|
для: Spenser
(17.11.2006 в 13:19)
| | Не помню. Глянь в HTML референсах есть этот метод у SELECT элемента.
Метод - insertAjancedHTL в смысле | |
|
|
|
|
|
|
|
для: XPraptor
(17.11.2006 в 12:34)
| | После присвоения нового значения переменной $findstring в ПХП скрипте, она должна вывестись в элементе формы. Правильно?
Если так, то код не работает | |
|
|
|
|
|
|
|
для: Jo!
(17.11.2006 в 18:32)
| | Что у тебя не работает? Ты хоть пути поменял в скрипте? Исправил имена файлов которые создал для теста? | |
|
|
|
|
автор: ita (20.11.2006 в 10:30) |
|
|
для: XPraptor
(18.11.2006 в 00:24)
| | код страницы, prototype.js искать в инете.
<script language="JavaScript" src="js/prototype.js"></script>
<script language="JavaScript">
host='http://domain/xml.php';
function XMLGET(){
var input = $('n');
var data = 'id='+input.value;
var newAjax = new Ajax.Request(host,{method: 'get', parameters: data, onComplete: BuildData});
}
function GetText(local, parentElem, index) {
result = parentElem.getElementsByTagName(local)[index];
if (result) {
if (result.childNodes.length > 1) {
return result.childNodes[1].nodeValue;
} else {
return result.firstChild.nodeValue;
}
} else {
return "n/a";
}
}
function BuildData(request)
{
var items = request.responseXML.getElementsByTagName("item");
resp = GetText("resp", items[0], 0);
$('result').innerHTML = resp;
}
</script>
<input type="text" onKeyUp="XMLGET()" name="nomer" id="n">
<div id="result"></div>
|
код xml.php
$xml = '<?xml version="1.0" encoding="windows-1251" standalone="yes"?>';
$xml.= '<item><resp>'.$_GET['id'].'</resp></item>';
header ('Expires: '. gmdate ('D, d M Y H:i:s') .' GMT');
header ('Last-Modified: '. gmdate ('D, d M Y H:i:s') .' GMT');
header ('Cache-Control: no-cache');
header ('Pragma: no-cache');
header ('Content-Type: text/xml');
echo $xml;
|
в нем.. любые проверки, дапнные на их основе и тд и тп..
[поправлено модератором] | |
|
|
|