Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.03.2013, 01:49
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

Вывод ответов в текстовое поле
Есть такой xml документ
<?xml version="1.0" encoding="windows-1251"?>
<?xml-stylesheet href="style.css" type="text/html" ?>

 
<!DOCTYPE test SYSTEM "test.xml">
<test>
<style  border="5px solid black" hight="350px"  width="350px"  padding="20px" margin="0px" position="relative" ></style>
<buttonstyle hight="40px" width="50px" position="fixed" marginleft="150px" ></buttonstyle>
	<attemptsanswer>1</attemptsanswer>
	<questions>
		<item>
			<question>Вопрос</question>
			<answers>
				<answer rating="1">Да3123</answer>
				<answer rating="0">Не21312т</answer>
			</answers>
		</item>
		<item>
			<question>Вопрос1</question>
			<answers>
				<answer rating="0">Да</answer>
				<answer rating="1">Нет </answer>
			</answers>
		</item>
		<item>
			<question>Вопрос2</question>
			<answers>
				<answer rating="0">хай </answer>
				<answer rating="1">дой </answer>
			</answers>
		</item>

	</questions>
		
<attemptext>Вы исчерпали количество попыток</attemptext>	
<attemptext1>Пройдите тест ище раз</attemptext1>	
<TextButton>Ответить на вопрос</TextButton>
<TextButton1>Стереть ответы</TextButton1>
<TextButton2>начать тест заново</TextButton2>
<TextButton3>Получить правильный ответ</TextButton3>
<ResultTextTrue>Ваш ответ верен!</ResultTextTrue>
<ResultTextFalse>Ваш ответ не верен!</ResultTextFalse>
</test>


и есть код который находит в этом xml документе все и рисует на страницу.
<!DOCTYPE html>
<html>

<head>



<meta  charset="utf-8" />
	<title>Test</title>
	
<script type="text/javascript" src="jquery.js"></script>
	

<script type="text/javascript">

						

var g_xml;
$(document).ready(function(){
		
		$.ajax({
			type: "GET",  
			url: "test.xml", 
			dataType: "xml", 
			success: vasa	
	 	});
		
		var button2 = document.getElementById("id2");
		button2.style.display='none';
		var button3 = document.getElementById("id3");
		button3.style.display='none';
		function vasa(xml) { 
					ResultTextTrue=$(xml).find('ResultTextTrue').text();
					ResultTextFalse=$(xml).find('ResultTextFalse').text();
					attemptsanswer=$(xml).find('attemptsanswer').text(); 
		
				g_xml=xml;
				html='';
				item=$(xml).find('questions').children();
				for(i=0; i<$(item).length; i++){
					html=html+"<div class='question' value='"+i+"'>";
					variant='';
					element=$(item).eq(i).children();
					k=0;
					title="<p>"+$(element)[0].textContent+"</p>";
					ans=$(element).eq(1).children();
					for(j=0; j<$(ans).length; j++){
						variant=variant+"<input type='radio' value='"+k+"' name='question"+i+"'>"+$(ans)[j].textContent;								
						k++;
					}	
					k=0;
					html=html+title+variant+"</div>";
				}		
				$('#queston').html(html);
				
				var div = document.getElementById('divi');
				//var decoration = xml.querySelector('style');
				div.style.border = $(xml).find('style').attr('border');
				div.style.width = $(xml).find('style').attr('width'); 
				div.style.height = $(xml).find('style').attr('hight');
				div.style.padding = $(xml).find('style').attr('padding');
				div.style.margin = $(xml).find('style').attr('margin');
				div.style.position = $(xml).find('style').attr('position');
		}
	 
       	
});
var pressed=0;
var pressed1=0;	

function checkAnswer(){
var error = false;
	q=$('#form').find('.question');
	for(i=0; i<$(q).length; i++){
		q_value=$(q).eq(i).attr('value');
		value=$(q).eq(i).find('input:checked').attr('value');
		rating=$(g_xml).find('questions').children().eq(q_value).children().eq(1).children().eq(value).attr('rating')
		ans=$(g_xml).find('questions').children().eq(q_value).children();
		text=$(ans).find('[rating="1"]').text()
		if(rating==1){
			//alert($(q).eq(i).find('p').text()+" - good ("+text+")");
			output.value=ResultTextTrue;
			
		}else{
		//	alert($(q).eq(i).find('p').text()+" - bad ("+text+")");
			output.value=ResultTextFalse;
			
			
		}
	
	}
			
		if(pressed<attemptsanswer)
							{
					
					  document.getElementById('meow').innerHTML = ++pressed;
						//	alert(pressed);	
				
                       }
					   else
					   {		
					    
							
							pressed=0;
							var button = document.getElementById("send");
							button.style.display='none';
							var button1 = document.getElementById("id1");
							button1.style.display='none';
							var button2 = document.getElementById("id2");
							button2.style.display='';
								button2.onclick = function(event){	
							
							
							
							button.style.display='';
							button1.style.display='';
							button2.style.display='none';
						
						
						
							
											g=++pressed1;
											
											
											if(pressed1>attemptsanswer)
											{
											button.style.display='none';
											button1.style.display='none';
											button2.style.display='none';
											var button3 = document.getElementById("id3");
											button3.style.display='';
										//	alert('ваши попытки закончились.Узнайте правильный ответ');
											}
										
										
							
						
							}
							
			
							
					   }
	
}
function 	 TrueAnswer(){
for(i=0; i<$(q).length; i++){
		//q_value=$(q).eq(i).attr('value');
		//value=$(q).eq(i).find('input:checked').attr('value');
		//rating=$(g_xml).find('questions').children().eq(q_value).children().eq(1).children().eq(value).attr('rating')
		//ans=$(g_xml).find('questions').children().eq(q_value).children();
		//text=$(ans).find('[rating="1"]').text();		
		output.value=$(q).eq(i).find('p').text()+"("+text+")";
}
}
   

</script>

</head>
<body>


<div id='form'>
<p>На кнопочку тыкнуто: <span id="meow">0</span> раз.</p>
	<div id="divi">
	<div id="queston"></div>
	</div>
	<button id='send' name='send' onclick='checkAnswer()' >Проверить</button>
	<button id="id1" type="reset">Стереть Ответы</button>
	<button id="id2" type="reset">Начать тест заново</button>
	<button id="id3" type="button" onclick="TrueAnswer()" >Показать правильный ответ</button>
	<p style=" position:relative"><textarea id="output" readonly></textarea></p>
</div>



</body>

</html>


так вот немогу в текстовое поле правильно вывести правильные ответы.В функции
function 	 TrueAnswer()

Если делать вывод как
alert($(q).eq(i).find('p').text()+"("+text+")";)

То все выводит чюдесно а если вывожу в текстовое поле то выводит только первый правильный ответ.Как коректно зделать вывод в текстовое поле.Подскажите пожалуста

Последний раз редактировалось Vasy, 26.03.2013 в 14:09.
Ответить с цитированием
  #2 (permalink)  
Старый 26.03.2013, 14:07
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

Подскажите пожалуйста как коректо выводить.

Последний раз редактировалось Vasy, 26.03.2013 в 14:10.
Ответить с цитированием
  #3 (permalink)  
Старый 26.03.2013, 15:19
Профессор
Отправить личное сообщение для Hoshinokoe Посмотреть профиль Найти все сообщения от Hoshinokoe
 
Регистрация: 08.01.2012
Сообщений: 253

Vasy,

Сделайте небольшой тестовый пример, тогда вам обязательно помогут.
Ковыряться в этой неотформатированной простыне кода нет ни малейшего желания.
Ответить с цитированием
  #4 (permalink)  
Старый 26.03.2013, 15:26
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

вот небольшой тестовый пример.Учитывая тот-же xml документ
<html>
 
<head>
 
 
 
<meta  charset="utf-8" />
    <title>Test</title>
     
<script type="text/javascript" src="jquery.js"></script>
     
 
<script type="text/javascript">

function     TrueAnswer(){
for(i=0; i<$(q).length; i++){
        q_value=$(q).eq(i).attr('value');
        rating=$(g_xml).find('questions').children().eq(q_value).children().eq(1).children().eq(value).attr('rating')
        ans=$(g_xml).find('questions').children().eq(q_value).children();
        text=$(ans).find('[rating="1"]').text();     
        alert($(q).eq(i).find('p').text()+"("+text+")");
}
}
</script>
 
</head>
<body>
 
 
<div id='form'>

   
  
    <button id="id3" type="button" onclick="TrueAnswer()" >Показать правильный ответ</button>
    <p style=" position:relative"><textarea id="output" readonly></textarea></p>
</div>

тут есть только та функция с помощью которой я хочу выводить только верные ответы в текствое поле.Все остальное что было в полном коде,по сути неважно.Идет просто добавление всего из xml документа.
Так оно выводит так как я ожидаю,выводит все правильные всех ответов.Ну тоесть выводитса 3 алерта в цикле.А как выводить в текстовое поле ну с помощью
output.value=($(q).eq(i).find('p').text()+"("+text+")");

Последний раз редактировалось Vasy, 26.03.2013 в 15:30.
Ответить с цитированием
  #5 (permalink)  
Старый 26.03.2013, 16:19
Профессор
Отправить личное сообщение для Hoshinokoe Посмотреть профиль Найти все сообщения от Hoshinokoe
 
Регистрация: 08.01.2012
Сообщений: 253

Vasy,

output.value += ($(q).eq(i).find('p').text()+"("+text+")");
Ответить с цитированием
  #6 (permalink)  
Старый 26.03.2013, 16:29
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

спасибо вам огромное,совсем уже лоханулся на самом элементарно
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При наведение на форму,она выводится в текстовое поле! unkind Элементы интерфейса 9 07.11.2012 16:52
Как передать данные из jqGrid в текстовое поле? Rooner jQuery 2 27.09.2012 19:31
можно ли создать текстовое поле addChild Sadist_dead Flash 0 26.01.2012 16:30
Вывод данных в поле ввода с помощью JS Aleks-prog Ваши сайты и скрипты 0 23.06.2011 12:09
Сделать текстовое поле активным battrack1 Общие вопросы Javascript 3 11.06.2009 17:21