Эдгар Сергеев
32 года, Россия
14 сообщений
#12 лет назад
=аякс?
Дорогие фрилансеры! Помогите разобраться вот с такой простой задачкой:
<script language="javascript">
function loud(num_action,param)
{
<?php echo "любой текст"; ?>
//tratata…….
}</script>
у меня не срабатывает скрипт пхп. В идеале нужно чтоб из javascript’a скрипта вызывалась какая нить функция пхп, вот так:
<script language="javascript">
function loud(num_action,param)
{
<?php showcity(); ?>
//tratata…….
}</script>
второй час парюсь уже, может кто знает в чем моя ошибка, и как ее решить. PS: скрипт должен работать без перезагрузки страницы.
Вадим Т.
44 года, Нидерланды
3240 сообщений
#12 лет назад
Используйте старый добрый SAJAX, как раз то что Вам нужно. Там упрощенный вызов PHP функций из JavaScript через AJAX, причем относительно прозрачно для прораммиста.
One Choosen
183 сообщения
#12 лет назад
Цитата ("Edgar"):
<script language="javascript">
function loud(num_action,param)
{
<?php showcity(); ?>
//tratata…….
}</script>


Нужно понимать что код ПХП выполняется на сервере, а код Яваскрипт выполняется броузером клиента, поэтому такая запись просто выполнит 1 раз при генерации на сервере страницы функцию ПХП showcity(), сама же функция Яваскрипт loud() будет вообще не содержать функции ПХП showcity() даже только потому что все что находится между "<?php" и "?>" в браузер клиенты не попадает, а отрабатывается именно на сервере интерепретатором ПХП.
One Choosen
183 сообщения
#12 лет назад
Edgar,

вот пример кода реализующий фоновую обработку посредством Аякса:

<?php


/**
Builds neccessary JavaScript functions. This functions must be used in
pair with ajax_action(). $id -- it is any unique ID in all ajax_inits,
you can use even a number. $js_id -- must be valid ID of HTML element,
its value attribute will be filled with result of ajaxing :)
*/
function ajax_init( $id, $js_id )
{
$out =
<<<HTML
<script type=text/javascript>
var ajax_req_$id = false;
function ajax_request_$id( url, value ) {
ajax_req_$id = false;
if ( window.XMLHttpRequest ) {
ajax_req_$id = new XMLHttpRequest();
if ( ajax_req_$id.overrideMimeType ) ajax_req_$id.overrideMimeType( 'text/xml' );
} else if ( window.ActiveXObject ) {
try { ajax_req_$id = new ActiveXObject( 'Msxml2.XMLHTTP' ); }
catch (e) { try { ajax_req_$id = new ActiveXObject( 'Microsoft.XMLHTTP' ); } catch (e) { } }
}
if ( ! ajax_req_$id ) { alert( 'Cannot create an XMLHTTP instance!' ); return false; }
ajax_req_$id.onreadystatechange = ajax_output_$id;
ajax_req_$id.open( 'POST', url, true );
ajax_req_$id.send( value );
}
function ajax_output_$id( ) {
if ( ajax_req_$id.readyState == 4 ) {
if ( ajax_req_$id.status == 200 ) document.getElementById('$js_id').value = ajax_req_$id.responseText;
else alert( 'There was a problem with the request!' );
}
}
</script>
HTML;

return $out;
}


/**
Returns prepared executing of AJAX handler in JavaScript. This function must
be used in pair with ajax_init() function.
*/
function ajax_action( $id, $param, $url )
{
return "ajax_request_$id('$url',$param)";
}


// ===============================================================================


if (isset($_GET["ajax"]))
{
if ($HTTP_RAW_POST_DATA=="vasja") echo "This is vasja :)";
else echo "This is not vasja :(";
}
else
{
$out = "";

$out .= "<h4>test_ajax</h4>";

$out .= ajax_init( 1, "f_out" );
$out .= "<input id=f_in onkeyup="".ajax_action( 1, "this.value", "test_ajax.php?ajax" ).""> ";
$out .= "<input id=f_out style=border:0;background-color:#ffee88;text-align:center;>";

echo $out;
}


?>


1) сохрани код в файл "test_ajax.php" и выполни скрипт в броузере;
2) при каждом изменении строки ввода отсылается запрос посредсвом Аякса, где и проверяется -- если введено слово "vasja" выводится одно, иначе -- другое.

П.С.: естественно это только пример, скорее всего нужно будет не проверять напрямую в коде с "vasja", а делать выборку из БД, например.
Эдгар Сергеев
32 года, Россия
14 сообщений
#12 лет назад
Блльшое всем спасибо.
Андрей Папченков
39 лет, Россия
43 сообщения
#12 лет назад
Edgar, я бы тебе посоветую убрать "PHP" из профиля, т.к. твой уровень недостаточен
Станислав Малкин
34 года, Украина
1410 сообщений
#12 лет назад
Цитата ("Luerssen"):
Edgar, я бы тебе посоветую убрать "PHP" из профиля, т.к. твой уровень недостаточен


Стоит определить для чего именно "недостаточен". Мы же не знаем, что за хитрые услуги скрываются под "PHP".
One Choosen
183 сообщения
#12 лет назад
Luerssen,

а я бы советовал вам не заказывать проекты у людей, уровень которых вам кажется недостаточным.
Владимир С.
33 года, Россия
581 сообщение
#12 лет назад
А почему не раздел 'программирование' ?
Александр Ершов
32 года, Россия
80 сообщений
#12 лет назад
Если все в порядке с английским и нужно простое в использовании, но очень мощное и эффективное средство, то Вам сюда: http://www.xajaxproject.org/
Эдгар Сергеев
32 года, Россия
14 сообщений
#12 лет назад
Цитата ("Luerssen"):
Edgar, я бы тебе посоветую убрать "PHP" из профиля, т.к. твой уровень недостаточен

Да, я новичок в пхп, но я берусь только за те заказы, в которых моего уровня хватает. доработал пару скриптов за небольшую сумму-заказчики довольны.
Эдгар Сергеев
32 года, Россия
14 сообщений
#12 лет назад
Цитата ("Cord"):
Если все в порядке с английским и нужно простое в использовании, но очень мощное и эффективное средство, то Вам сюда: ]http://www.xajaxproject.org/

Cord , спасибо за полезную ссылку
Эдгар Сергеев
32 года, Россия
14 сообщений
#12 лет назад
Цитата ("Virtson"):
а почему не раздел 'программирование' ?

В след раз буду более внимателен