У меня сделано так, что контент подгружается аяксом в див.
главная страница
Код | <a href="#" onclick="show_reg_form()">Регистрация</a> <div id="main_content"> Контент главной стр. по умолчанию <div>
|
При нажатии на ссылку, вместо главного контента должна появиться форма регистрации
функция обработки клика для отправки в аякс
Код | function show_reg_form() { var show = new JsHttpRequest(); show.onreadystatechange = function() { if(show.readyState == 4) { getID('main_content').innerHTML = show.responseJS.show_otvet; hideload(); } } show.open('POST', 'registration.php', true);// куда отправлять show.send({action:'registration'}); showload(); }
|
Обработка аякса в пхп
Код | <?php require_once('functions/functions.php'); require_once('lib/JsHttpRequest/JsHttpRequest.php'); //подклучаем файл $Js = new JsHttpRequest('windows-1251'); //кодировка ответов windows-1251
if(isset($_POST['action']) and $_POST['action']=='registration') { //sleep(1); $GLOBALS['_RESULT']['show_otvet']=' <table class="reg_content" width="90%" border="0" align="center" cellpadding="1" cellspacing="1"> <tr> <td colspan="2" align="center"><strong>Регистрация</strong><br /><br /></td> </tr> <tr> <td align="right">Логин</td> <td align="left"><input class="input_reg" type="text" name="user_login" id="user_login" /></td> </tr> <tr> <td align="right">Пароль</td> <td align="left"><input class="input_reg" type="password" name="user_password" id="user_password" /></td> </tr> <tr> <td align="right">Пароль ещё раз</td> <td align="left"><input class="input_reg" type="password" name="user_password2" id="user_password2" /></td> </tr> <tr> <td align="right">Имя</td> <td align="left"><input class="input_reg" type="text" name="user_name" id="user_name" /></td> </tr> <tr> <td align="right">E-mail</td> <td align="left"><input class="input_reg" type="text" name="user_email" id="user_email" /></td> </tr> <tr> <td> </td> <td align="left"><div id="create_button"><input class="input_button_con" type="button" name="reg" id="regi" value="Регистрация" onClick="registration()" /></div> <div id="ajaxload"><img src="../images/ajax-loader.gif"></div> </td> </tr> <tr><td colspan="2" align="center"><br /><br /><div id="reg_result"></div></td></tr> </table> '; } ?>
|
Когда заполняешь форму и жмёшь на кнопку зарегиться, то всё тоже идёт через аякс. Фишка в том, что функция registration() не видит форму. А если быть на главной стр и потом нажать на регистрацию, то появится форма, НО если посмотреть исходный хтмл код, то там остаётся старый контент. В чём может быть дело? |