Значит что сделал я (а я в аяксе ноль, вчера полдня сидел разбирался).
Часть хтмл кода:
<div id="test">
<div id="ajax">
<?php echo question($_SESSION['num']); ?>
</div>
</div>
<div id="answer" onClick="Request()"></div>
собственно аякс
var req = Create();
function Create()
{
if(navigator.appName == "Microsoft Internet Explorer"){
req = new ActiveXObject("Microsoft.XMLHTTP");
}else{
req = new XMLHttpRequest();
}
return req;
}
function Request()
{
req.open('post', 'select.php' , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
req.send(null);
}
function Refresh()
{
if ( num > 10 )
{
document.getElementById('sms').style.display='block';
document.getElementById('ajax').style.display='none';
}
else if( req.readyState == 4 )
if (req.status == 200)
{
document.getElementById('ajax').innerHTML = req.responseText;
}
}
Я тут не делал, чтобы запоминало ответы...не получается. Пытаюсь их в сессию пихать, почему-то не запоминает.
Пых -файл, вызываемый аяксом:
session_start();
if(!isset($_SESSION['num']))
{
$_SESSION['num'] = 1;
}
else
{
$_SESSION['num'] ++;
}
include dirname(__FILE__) .'/questions.php';
echo question($_SESSION['num']);
И второй пых файл, который questions.php (он используется и аяксом и выше в хтмл форме там, где <div id="ajax">
<?php echo question($_SESSION['num']); ?>
</div> ) Это сделано, чтобы при обновлении не сбрасывало вопрос на первый..это кстати работает.
Вот его часть:
function question($q)
{
switch ($q)
{
case 2:
return '<strong>Вопросы: 2 из 10</strong>
<div class="question">Ваш пол:</div><br /><br />
<input id="q2" name="q2" type="radio" value="1" checked />Женский<br /><br />
<input id="q2" name="q2" type="radio" value="2" />Мужской<br /><br />';
break;
case 3:
$result = '<strong>Вопросы: 3 из 10</strong>
<div class="question">Ваш возраст:</div><br /><br />
<select id="q3" name="q3" style="width:130px; height:23px;">
<option selected="selected">менее 18</option>';
for ($i = 18; $i < 71; $i++)
{
$result .= '<option>' . $i . '</option>';
}
$result .= '<option>более 70</option></select><br /><br />';
return $result;
break;
.............................
Не работает вот это
document.getElementById('sms').style.display='block';
document.getElementById('ajax').style.display='none';
Т.е. я сделал в этом же хтмл-е нивидимый блок и чтобы при достижении нужного вопроса(последнего) форму с вопросами скрывало, а нужную мне открывало.
переменная num соответственно равна
var num = '<?php echo $_SESSION["num"]; ?>';
только вот не работает оно. где бы я ее не ставил. В главном индексе если...он ее видит ессно только при обновлении страницы. А в аяксовом файле прямо в той функции с условием он вообще не понимает ее...и alert(num) мне так и выдает <?php echo $_SESSION["num"]; ?>
Вообщем запутался я..помогите люди добрые
Спустя 9 минут, 52 секунды (28.01.2010 - 15:36) Gradus написал(а):
Цитата |
alert(num) мне так и выдает <?php echo $_SESSION["num"]; ?> |
Ну пропиши что бы в js файлах php работал , либо переделать файл в php и хедером сказать что это js файл.
Спустя 33 секунды (28.01.2010 - 15:37) Krevedko написал(а):
эээ..можно с этого места подробнее )
я не очень рублю в яве )
где-то на уровне гетелементбайайди и иннерхтмл )
я не очень рублю в яве )
где-то на уровне гетелементбайайди и иннерхтмл )
Спустя 5 минут, 50 секунд (28.01.2010 - 15:43) Gradus написал(а):
да тут не в яве дело
если в php файле , то пишем
а вот где разрешать php в файлах по типу я непомню к сожалению
если в php файле , то пишем
<?php header("Content-Type: text/javascript"); ?>
var num = '<?php echo $_SESSION["num"]; ?>';
а вот где разрешать php в файлах по типу я непомню к сожалению
Спустя 23 минуты, 2 секунды (28.01.2010 - 16:06) qpayct написал(а):
а чему у тебя равен num ?
+ ты ничего не передаёшь в POST
попробуй передать а потом обрабатывай
function Refresh()
{
if ( num > 10 )
{
+ ты ничего не передаёшь в POST
req.send(null);
попробуй передать а потом обрабатывай
req.send(param1=param1¶m2=param2.....);
Спустя 6 минут, 20 секунд (28.01.2010 - 16:12) Krevedko написал(а):
я ж говорю пишу в функции вот так
function Refresh()
{
var num = '<?php echo $_SESSION["num"]; ?>';
if ( num > 10 )
{
он не воспринимает пых-код....то, о чем писал Градус.
А параметры я передавал..фаербаг писал, чтовсе нормально передается. Но в почему-то в сессию они не хотели записываться
function Refresh()
{
var num = '<?php echo $_SESSION["num"]; ?>';
if ( num > 10 )
{
он не воспринимает пых-код....то, о чем писал Градус.
А параметры я передавал..фаербаг писал, чтовсе нормально передается. Но в почему-то в сессию они не хотели записываться
Спустя 9 минут, 39 секунд (28.01.2010 - 16:22) arlamar написал(а):
щас буду советовать то, чего никогда сам не пробовал)) некогда тестить
и обозвать этот файл getjs.php
попробуй может сработает
//тут ява скрипт
var num=<?php echo $_SESSION['num']; ?>;
//и дальше ява скрипт
и обозвать этот файл getjs.php
попробуй может сработает
Спустя 4 минуты, 57 секунд (28.01.2010 - 16:27) Krevedko написал(а):
ага..вот нашел еще тоже самое
http://xpoint.ru/forums/programming/java/thread/44777.xhtml
буду читать вообщем )
http://xpoint.ru/forums/programming/java/thread/44777.xhtml
буду читать вообщем )
Спустя 1 минута, 24 секунды (28.01.2010 - 16:28) glock18 написал(а):
Бедные java и javascript программисты. Им, наверно, очень не нравится, что эти языки постоянно обзывают одинаково.
Спустя 3 минуты, 2 секунды (28.01.2010 - 16:31) Krevedko написал(а):
лень было писать столь длинное название :р
Спустя 59 минут, 12 секунд (28.01.2010 - 17:30) glock18 написал(а):
Надеюсь, что решение ты уже нашел, потому что мне лень его сюда писать
Спустя 18 минут, 13 секунд (28.01.2010 - 17:48) Krevedko написал(а):
а я в тебе никогда и не сомневался