@Kn94234

Как изменить переменную в js?

День добрый!
На страницы калькуляторы математические. У каждого кнопка, по которой отправляются данные формы.
Есть функция ниже. В функции парсю JSON массив, типа {answer1: 16, answer2: 0, answer3: 12, и т.д.}
В функцию, в параметр count передается число, соответствующее ключу массива (answer1 - 1, answer2 -2 и т.д.).
И на страницу мне нужно вывести значение массива, соответствующее калькулятору (кнопке, которая запускает скрипт).
Мне нужно чтобы элемент массива result.answer_item выбирался в зависимости от переданного значения count,
т.е. result.answer1, или result.answer2, и т.д. Но когда я присваиваю answer_item значение answer1 (или answer2), то значение становится строкой, ссылка на элемент массива result.answer_item( result.answer1) принимает значение undefined.
Что можно придумать, чтобы переменная answer была динамической, и менялась в зависимости от параметра count?

$( document ).ready(function() {
    $("#btn1").click(
		function(){
			sendAjaxForm('formula1_result', 'formula1_form', 'math.php',1);
			return false; 
		}
	);
});

$( document ).ready(function() {
    $("#btn2").click(
		function(){
			sendAjaxForm('formula2_result', 'formula2_form', 'math.php',2);			
			return false; 
		}
	);
});

function sendAjaxForm(result_form, ajax_form, url, count) {
    $.ajax({
        url:     url, //url страницы (action_ajax_form.php)
        type:     "POST", //метод отправки
        dataType: "html", //формат данных
        data: $("#"+ajax_form).serialize(),  // Сеарилизуем объект
        success: function(response) { //Данные отправлены успешно
					result = JSON.parse(response);
        	console.log(result);						
					name_output_div= "#"+result_form;
					answer_item='answer'+count;	 	
					console.log(result.answer_item);	
					answer=result.answer_item;  ------------------- проблема здесь
					$(name_output_div).text('Ответ: '+answer); 	
					
    	},
    	error: function(response) { // Данные не отправлены
            $(name_output_div).text('Ошибка. Данные не отправлены.');
    	}
 	});
}


<body>
		<h2>Математические формулы</h2>
		<!---------------------- Квадрат суммы ------------------->
		<p><strong>Квадрат суммы:</strong></p>
		<form action="" method="post" id="formula1_form">
			<ul>
				<li class="math-item">
					<label> Число a:
						<input class="math-short-field" type="text" placeholder="2" name="formula1_a">
					</label>
				</li>
				<li>
					<label> Число b:
						<input class="math-short-field" type="text" placeholder="5" name="formula1_b">
					</label>
				</li>	
			</ul>			
			<button type="submit" aria-label="Вычислить квадрат суммы" id="btn1">Вычислить квадрат суммы</button>
		</form>	
		<div class="answer" id="formula1_result"></div>
		<!---------------------- Квадрат разности ------------------->
		<p><strong>Квадрат разности:</strong></p>
		<form action="" method="post" id="formula2_form">
			<ul>
				<li class="math-item">
					<label> Число a:
						<input class="math-short-field" type="text" placeholder="2" name="formula2_a">
					</label>
				</li>
				<li>
					<label> Число b:
						<input class="math-short-field" type="text" placeholder="5" name="formula2_b">
					</label>
				</li>	
			</ul>			
			<button type="submit" aria-label="Вычислить квадрат разности" id="btn2">Вычислить квадрат разности</button>
		</form>	
		<div class="answer" id="formula2_result"></div>


<?

//Квадрат суммы
if (isset($_POST["formula1_a"]) && isset($_POST["formula1_b"]) || isset($_POST["formula2_a"]) && isset($_POST["formula2_b"])             ) { 
	$a = $_POST["formula1_a"];
	$b = $_POST["formula1_b"];	
	$a2 = $_POST["formula2_a"];
	$b2 = $_POST["formula2_b"];
	
	$formula1 = pow($a,2) + 2*$a*$b + pow($b,2);
	$formula2 = pow($a2,2)- 2*$a2*$b2 + pow($b2,2);
}

	// Формируем массив для JSON ответа
    $result = array(
    	'answer1' => $formula1,
			'answer2' => $formula2
    ); 
    // Переводим массив в JSON		
    echo json_encode($result); 
?>


619613901d3e8903812042.png
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы