PHP+JavaScript=?
14 сообщений
#15 лет назад
=аякс?Дорогие фрилансеры! Помогите разобраться вот с такой простой задачкой:
<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 сообщений
#15 лет назад
Используйте старый добрый SAJAX, как раз то что Вам нужно. Там упрощенный вызов PHP функций из JavaScript через AJAX, причем относительно прозрачно для прораммиста.
183 сообщения
#15 лет назад
Цитата ("Edgar"):
<script language="javascript">
function loud(num_action,param)
{
<?php showcity(); ?>
//tratata…….
}</script>
Нужно понимать что код ПХП выполняется на сервере, а код Яваскрипт выполняется броузером клиента, поэтому такая запись просто выполнит 1 раз при генерации на сервере страницы функцию ПХП showcity(), сама же функция Яваскрипт loud() будет вообще не содержать функции ПХП showcity() даже только потому что все что находится между "<?php" и "?>" в браузер клиенты не попадает, а отрабатывается именно на сервере интерепретатором ПХП.
183 сообщения
#15 лет назад
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", а делать выборку из БД, например.
43 сообщения
#15 лет назад
Edgar, я бы тебе посоветую убрать "PHP" из профиля, т.к. твой уровень недостаточен
1410 сообщений
#15 лет назад
Цитата ("Luerssen"):Edgar, я бы тебе посоветую убрать "PHP" из профиля, т.к. твой уровень недостаточен
Стоит определить для чего именно "недостаточен". Мы же не знаем, что за хитрые услуги скрываются под "PHP".
183 сообщения
#15 лет назад
Luerssen, а я бы советовал вам не заказывать проекты у людей, уровень которых вам кажется недостаточным.
80 сообщений
14 сообщений
#15 лет назад
Цитата ("Luerssen"):Edgar, я бы тебе посоветую убрать "PHP" из профиля, т.к. твой уровень недостаточен
Да, я новичок в пхп, но я берусь только за те заказы, в которых моего уровня хватает. доработал пару скриптов за небольшую сумму-заказчики довольны.
14 сообщений
#15 лет назад
Цитата ("Cord"):Если все в порядке с английским и нужно простое в использовании, но очень мощное и эффективное средство, то Вам сюда: ]http://www.xajaxproject.org/
Cord , спасибо за полезную ссылку