Эдгар С.
14 повідомлень
#18 років тому
=аякс?
Дорогие фрилансеры! Помогите разобраться вот с такой простой задачкой:
<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: скрипт должен работать без перезагрузки страницы.
Вадим Т.
3240 повідомлень
#18 років тому
Используйте старый добрый SAJAX, как раз то что Вам нужно. Там упрощенный вызов PHP функций из JavaScript через AJAX, причем относительно прозрачно для прораммиста.
Гость
183 повідомлення
#18 років тому
Цитата ("Edgar"):

<script language="javascript">
function loud(num_action,param)
{
<?php showcity(); ?>
//tratata…….
}</script>


Нужно понимать что код ПХП выполняется на сервере, а код Яваскрипт выполняется броузером клиента, поэтому такая запись просто выполнит 1 раз при генерации на сервере страницы функцию ПХП showcity(), сама же функция Яваскрипт loud() будет вообще не содержать функции ПХП showcity() даже только потому что все что находится между "<?php" и "?>" в браузер клиенты не попадает, а отрабатывается именно на сервере интерепретатором ПХП.
Гость
183 повідомлення
#18 років тому
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))
{
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", а делать выборку из БД, например.
Эдгар С.
14 повідомлень
#18 років тому
Блльшое всем спасибо.
Андрей П.
43 повідомлення
#18 років тому
Edgar, я бы тебе посоветую убрать "PHP" из профиля, т.к. твой уровень недостаточен
Станислав Малкин
1410 повідомлень
#18 років тому
Цитата ("Luerssen"):
Edgar, я бы тебе посоветую убрать "PHP" из профиля, т.к. твой уровень недостаточен


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

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

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

Cord , спасибо за полезную ссылку
Эдгар С.
14 повідомлень
#18 років тому
Цитата ("Virtson"):
а почему не раздел 'программирование' ?

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