Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: PHP в JS функции

Сообщения:  [1-10]   [11-15] 

 
 автор: 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;


в нем.. любые проверки, дапнные на их основе и тд и тп..

[поправлено модератором]

   
 
 автор: XPraptor   (18.11.2006 в 00:24)   письмо автору
 
   для: Jo!   (17.11.2006 в 18:32)
 

Что у тебя не работает? Ты хоть пути поменял в скрипте? Исправил имена файлов которые создал для теста?

   
 
 автор: Jo!   (17.11.2006 в 18:32)   письмо автору
 
   для: XPraptor   (17.11.2006 в 12:34)
 

После присвоения нового значения переменной $findstring в ПХП скрипте, она должна вывестись в элементе формы. Правильно?

Если так, то код не работает

   
 
 автор: XPraptor   (17.11.2006 в 14:05)   письмо автору
 
   для: Spenser   (17.11.2006 в 13:19)
 

Не помню. Глянь в HTML референсах есть этот метод у SELECT элемента.
Метод - insertAjancedHTL в смысле

   
 
 автор: Spenser   (17.11.2006 в 13:19)   письмо автору
 
   для: XPraptor   (17.11.2006 в 12:59)
 

а id="return_code_element" можно поставить и на <select> ?

   
 
 автор: XPraptor   (17.11.2006 в 13:03)   письмо автору
 
   для: Spenser   (17.11.2006 в 13:02)
 

Функцию get_from_php() тоже можешь пихать ф этот же файл а можешь для разных страниц свои наборы функций создавать.

   
 
 автор: Spenser   (17.11.2006 в 13:02)   письмо автору
 
   для: XPraptor   (17.11.2006 в 12:59)
 

спасибо! сейчас буду пробывать. если что, то спрошу.в любом случае о результате сообщу :)

   
 
 автор: XPraptor   (17.11.2006 в 12:59)   письмо автору
 
   для: 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>
...

   
 
 автор: Spenser   (17.11.2006 в 12:55)   письмо автору
 
   для: 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); 


   
 
 автор: XPraptor   (17.11.2006 в 12:34)   письмо автору
 
   для: 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
}



Если где то есть глюки с опечатками или синтаксисом, то сорри, я в блокноте пишу на работе и не могу проверить синтаксис.
Сам подправиш где не точночти, смысл общий ясен думаю.

[поправлено модератором]

   

Сообщения:  [1-10]   [11-15] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования