자바스크립트 배열 질문드립니다..
본문
<script src="<?=$board_skin_url?>/noUiSlider-14.1.1/distribute/nouislider.js"></script>
<link rel="stylesheet" href="<?=$board_skin_url?>/noUiSlider-14.1.1/distribute/nouislider.css">
<?for($i=0;$i<=3;$i++){?>
<fieldset style='border:1px;'><p class='no-drag'><?=chr($i+97)?>상수</p>
<div class="bo_w_tit write_div">
<div id="slider-direction[<?=$i?>]"></div>
<select id="input-select[<?=$i?>]"></select>
<input type="button" id="write-button[<?=$i?>]" value="초기화">
<input type="button" id="read-button[<?=$i?>]" value="현재값 출력">
<input type="text" id="field[<?=$i?>]" name="field[<?=$i?>]" class="field" style="border:0px;"readonly="" onfocus="this.blur();">
<input type="number" id="input-number[<?=$i?>]" name="input_number[<?=$i?>]" min="-15" max="15" value="0" >
<script>
// javascript
var directionSlider=new Array();
directionSlider[<?=$i?>] = document.getElementById('slider-direction[<?=$i?>]');
noUiSlider.create(directionSlider[<?=$i?>], {
start: 0,
step:0.01,
connect: true,
range: {
'min':-15,
'max':15
}
});
// 0으로 초기화 하기
document.getElementById('write-button[<?=$i?>]').addEventListener('click', function () {
directionSlider[<?=$i?>].noUiSlider.set(0);
});
// 정의한 값 alert창 띄우기
document.getElementById('read-button[<?=$i?>]').addEventListener('click', function () {
alert(directionSlider[<?=$i?>].noUiSlider.get());
});
var num=new Array();
num[<?=$i?>] = directionSlider[<?=$i?>].noUiSlider.get();
// 현재 값 출력하기
var directionField=new Array();
var values = new Array();
directionField[<?=$i?>] = document.getElementById('field[<?=$i?>]');
directionSlider[<?=$i?>].noUiSlider.on('update', function (values, handle) {
console.log(directionField[<?=$i?>]);
directionField[<?=$i?>].innerHTML = values[handle][<?=$i?>];
directionField[<?=$i?>].value=values[handle];
});
var select=new Array();
select[<?=$i?>] = document.getElementById('input-select[<?=$i?>]');
// 셀렉트 추가
for (var i = -15; i <= 15; i+=0.01) {
var option=new Array();
option[<?=$i?>] = document.createElement("option");
option[<?=$i?>].text = i.toFixed(2);
option[<?=$i?>].value = i.toFixed(2);
if(option[<?=$i?>].value=="-0.00"){ option[<?=$i?>].value = "0.00";option[<?=$i?>].text ="0.00";}
select[<?=$i?>].appendChild(option[<?=$i?>]);
}
var inputNumber=new Array();
inputNumber[<?=$i?>] = document.getElementById('input-number[<?=$i?>]');
//값 변동 기능
directionSlider[<?=$i?>].noUiSlider.on('update', function (values, handle) {
var value=new Array();
value[<?=$i?>] = values[handle];
if (handle) {
} else {
select[<?=$i?>].value = value[<?=$i?>];
inputNumber[<?=$i?>].value = Math.round(value[<?=$i?>]);
}
});
select[<?=$i?>].addEventListener('change', function () {
directionSlider[<?=$i?>].noUiSlider.set([this.value, null]);
});
inputNumber[<?=$i?>].addEventListener('change', function () {
directionSlider[<?=$i?>].noUiSlider.set([this.value, null]);
});
</script>
</div>
</fieldset>
안녕하세요 웹공부를 하고있는 학생입니다.
http://wnghks2516.cafe24.com/gnuboard5/Parametric/write
해당 페이지에서 https://refreshless.com/nouislider/
에서 제공한 슬라이드를 적용시켜 배열로 4개정도를 for문을 돌려 각각 슬라이드에 해당하는 값을 출력하고 싶은데 가장 마지막 값인 d상수부분만 나오고 있습니다.
관리자모드로 보면 innterHTML부분에서 에러가 나오는데 왜 이걸 인식못하는지 모르겠습니다.
!-->
답변 2
PHP 와 javascript 를 섞어 쓰는듯 합니다.
for 문은 javascript 인데 그안에 값들은 PHP 값은 $i 를 쓰고 있네요
PHP 로 javascript 를 생성하는건데..
일단 javascript 가 어떻게 됐는지 부터 확인하고 그담에 코드 디버깅이 필요하네요
PHP는 화면이 열리기 전에 돌아가는 언어구요
Javascript는 화면이 열린 후에 돌아가는 언어입니다.
답변을 작성하시기 전에 로그인 해주세요.