Показать сообщение отдельно
  #8 (permalink)  
Старый 18.04.2012, 20:11
Кандидат Javascript-наук
Отправить личное сообщение для vuler Посмотреть профиль Найти все сообщения от vuler
 
Регистрация: 16.02.2012
Сообщений: 109

Ок. понял процентов 30 объясню что знаю, а там сам допишешь что надо
В начале ставишь себе библиотеку jquery чтобы не заморачиваться сильно с js. Берешь ее тут http://jquery.com/ последнюю версию.
my.php
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<script src="jquery-1.7.1.js" type="text/javascript"></script> //подрубаешь библиотеку что только что скачал.
<script> //тут пишешь js код или подрубаешь файл где он хранится.

$(document).ready(function() { // особо не заморачивайся зачем это, просто все будет работать когда документ загружен полностью.

    $(document).on('click', '.btn_go',send_ajax); //устанавливаем обработчик события для кнопки go. $(document).on - устанавливает обработчик. 'click' - действие которое произошло с элементом. В данном случаи клик, там может быть и пук и т.д. '.btn_go' - собственно для какого элемента установлен этот обработчик события. В твоем случаи все элементы имеющие класс - btn_go(все кнопки Go). send_ajax - название функции придуманное от балды, в общем функция будет вызваться когда произошло событие(у нас - клик на элемент с классом btn_go);

function send_ajax(){ //функция которая будет отправлять запрос на сервер и обрабатывать полученный результат.

$.ajax({
	type: 'POST', //метод отправки запроса на сервер, пусть POST пофиг
	url: 'ajax_my.php', //собственно как файл на сервере будет исполнен. в общем файл где есть функция my();
        data:{},//данные которые будут на сервер передаваться, в нашем случаи никаких, если нужно выполнить тупо еще раз функцию my без параметров.
	success: function(data){//собственно тут и надо разруливать данные присланные с сервера. функция будет вызываться при успешном ответе сервера. У ней есть параметр - data. В общем это те данные что пришли с сервера. В нашем случаи пришел хтмл код типа ((<div id="my" name="my">hello world<input type="button" value="Go" onClick="onChange_(this)"/></div>)). осталось только вставить его в нужно место на странице и все. я пустой блок с id="inner_block", в него и засунем то что пришло с сервера.
               $('#inner_block').append(data) // $('#inner_block') - находит на странице элемент с id=inner_block. append(data) - в конец этого элемента дописывает нашу data(данные пришедшие с сервера) 
 
					 }
	});
}

});


</script>
</head>
<body>

function my(){
    $test = '<div id="my" name="my">';
    $test .= 'hello world';
    $test .= '<br>';
    $test .= '<input class="btn_go" type="button" value="Go" >'; //обзываем кнопку как btn_go чтобы привязать к нему обработчик события(когда кнопка будет нажата)
    $test .= '</div>';
    return $test;
}

<?php
  echo my();
?>
<div id="inner_block"></div> - сюда будем вставлять пришедшие с серва данные.
</body>


Вот код для ajax_my.php тут все очень просто
<?php
function my(){
    $test = '<div id="my" name="my">';
    $test .= 'hello world';
    $test .= '<br>';
    $test .= '<input class="btn_go" type="button" value="Go" >';
    $test .= '</div>';
    return $test;
}
  echo my();
?>

Вопрос лишь в том куда ты хочешь вставлять присланные данные в этот элемент, заменить элемент и т.д. тебе в помощь к append есть еще prepend(), html() - все jquery методы.
Ответить с цитированием