copyloc
@copyloc
Человек то я не глупый, просто притворяюсь

Как выполнить функцию php ajax'ом?

Есть файл index.php в нем есть textarea и функция вывода информации из этой textarea и выводится этот текст в блоке с id text.

В и интернете не смог найти, как вызвать php функцию, а не файл.

Или нельзя вызывать функцию с этой страницы? И как мне поступить, чтобы после изменения textarea, в блоке с id text, выводилось то, что введено в нее без перезарузке страницы?

Вот что у меня есть сейчас:
function show()  
{  
   $.ajax({  
     url: "gensite.php",  
     cache: false,  
     method: "POST",
     data: "cod=2",
     beforeSend: function()  { $("#content").html("").hide(); },
     success:  function(data)    { $("#content").html(data); }
   });  
}  
				  
$(document).ready(function(){  
   show();  
   setInterval('show()',1000);  
});


У меня не получается передать на страницу gensite.php информацию из textarea (Да и вообще ничего не передается ни GET, ни POST).

UPD 16.11.2014
>У меня проект связан с тем, что пользователь выполняет определенные задания(пишет код), а пока он пишет этот код(HTML и CSS), он преобразуется в страницу в блоке content, грубо говоря, генерируется сайт, который пишет пользователь.

Вот я нашел сайт htmlacademy.ru/courses/4/run/1
Так вот, правое окно, это и есть моя цель, я пытался найти в коде как они это сделали, но нашел только одну не понятную функцию связанную с ajax, которая не связана с этим окном.
draJzOJ.png
  • Вопрос задан
  • 9032 просмотра
Пригласить эксперта
Ответы на вопрос 4
diksi
@diksi
data = $('textarea').val();
$('#content').text(data);

PHP для этого не нужен.
Ответ написан
Комментировать
@niceandriyanov
Ну вы вообще ребята! Все можно сделать если знаешь как) Сразу видно frontend разработчики советуют...
Смотри, так или иначе ты все равно обращаешься к файлу, этот файл должен каким либо образом знать о данной функции. Иначе как я делаю, создаю файл, например: gensite.php. Файл содержит следующее:
function search_city(){
		print_r('1111');
	}
	
	if(!empty($_REQUEST)){
		if(function_exists($_REQUEST['action'])){
			call_user_func($_REQUEST['action']);
		}
		die();
	}

Ну, только осталось в data при вызове ajax (post) добавить еще один параметр: action=search_city.
То есть функция call_user_func спасет тебя.
Если название функции передается в textarea то просто придумай сепаратор для них и вызывай action=$('#area').val()
тут тогда explode('separator',$_REQUEST['action']) и циклом проверяешь сначала на существование такой функции потом уже вызов функции... Все просто)))
Ответ написан
Комментировать
@dezintegro
function show()
{
    $('#content').hide()
    $.post( "gensite.php", { data: $('#area').val() })
        .done(function( data ) {
            $('#content').text(data)
            $('#content').show()
        });
}
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
как вызвать php функцию, а не файл.

Никак, разумеется.

Для начала надо понять, что в файле index.php НЕТ ни textarea, ни функции вывода информации из этой textarea. А есть просто набор абстрактного текста.
Для этого надо вдумчиво прочитать букварь, phpfaq.ru/na_tanke

И после этого догадаться, что аякс для этих телодвижений не нужен.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы