나직한 문의..... 채택완료
var match_cnt = ;
for (i=0;i var new_row1 = " 생략 위 스크립트에서 =strip_tags($match_student[1][$i])?>' $i는 안나오고 이렇게 =strip_tags($match_student[1][3])?>' 직접 숫자를 넣어서 하면 나오는데 어떻게 해야 할까요? 여기까지는 했습니다. ------------------------------------------------------------------- 위의 소스는 그리 좋지 않습니다 아래와 같이 php 코드를 먼저 변수로 정의하고 그 다음 자바 스크립트만으로 소스를 짜는게 좋습니다 ------------------------------------------------------------------- // 상단에 php활요한 변수 기재 그 이후 자바스크립트 코딩 var total_cnt = ''; for(var i=0; i < total_cnt; i++){ alert(i); // 알러트 출력 } 또는 // 일부 php코드가 들어가서 페이지의 자바스크립트 제일 상단에 일반 변수로 기재 var total_cnt = ''; // 자바스크립트 코드만으로 완전 분리 ( js 파일로 따로 만들어 이곳 혹은 다른 곳에서도 재활용 가능 ) for(var i=0; i < total_cnt; i++){ alert(i); // 알러트 출력 } -------------------------------------------------------------------- 위와 같이 분리를 하는 이유는 자바스크립트 만으로 코드가 이뤄졌다면 가독성이 좀 더 원할할 뿐더러 상황에 따라 자바스크립트만을 따로 똑 떼어서 js 파일로 만들어 연결 시킬수 있기 때문입니다 재활용성이 높아집니다 php와 뒤섞여 있을때 간혹 php코드를 자바스크립트 코드로 착각하고 증가 시키거나 호출하거나 그 반대로 호출하거나 증가 시키거나 하는 실수를 범합니다 [ 2]. 배열을 활용해 보세요 for문등으로 어떠한 대상을 반복해서 사용해야 한다면 배열 활용이 크게 도움이 됩니다 예 ) var result_array = [20,51,90,10,527,1]; var total_cnt = result_array.length; // 위의 배열 갯수 for( var i=0; i < total_cnt; i++ ){ alert ( result_array[i] ); // 포문을 돌면서 배열 하나씩 출력 } [3]. for문 안에 있는 증가 변수 ( 2번의 예에서는 ===> var i ) 에만 의존하지 마시구 상황에 따라서는 다른 변수를 지정 증가 혹은 감소를 상황에 따라 제어를 해야 합니다 즉 i 는 증가하구 다른 변수를 넣어서 상황 제어용으로 써야 합니다 예 ) 배열에 들어간 숫자가 짝수인 것의 전체 갯수는 ? var j=0; // 짝수인것에 체크하는 증가 변수 for( var i=0; i < total_cnt; i++ ){ if(result_array[i] % 2 == 0){ // 들어온 배열이 짝수라면 alert ( result_array[i] ); // 포문을 돌면서 배열 하나씩 출력 j++; // 들어온 배열이 짝수가 전체 몇개 인지 확인용 변수 } } 출력 alert(j); => 배열에 들어간 숫자가 짝수인 것의 전체 갯수
댓글을 작성하려면 로그인이 필요합니다.
tmp = "=implode(',' , $match_student[1])?>".split(','); for (i=0;i< tmp.length; i++ ) { new_row1 ="~~~~value='"+tmp[i]+"'>";
댓글을 작성하려면 로그인이 필요합니다.
말씀하신 부분이 자바스크립트 반복문으로 php 배열 변수를 접근하려는 모양이신데 그 부분이 잘못되신거 같습니다.. php코드가 자바스크립트 코드 보다 먼저 수행하고 그 다음에 자바스크립트 코드가 수행하기 때문에 안되는 겁니다. $match_student 이 값을 javascript 배열로 담아서 출력을 하시든 아니면 php코드로 다 짜셔서 하시든 하셔야 할거 같아요^^;
댓글을 작성하려면 로그인이 필요합니다.
1.정확히 위의 값이 어떻게 출력되나요 2. 결과 값이 value='20' value='51' value='90' ... 이와 같이 출력 되어야 하나요 정확히 출력되어야 할 자바스크립트 소스를 PHP코드 없이 작성해 주세요 되도록 출력 완료형으로 이렇게 이렇게 출력되어야 합니다 하구 화살표로 자리매김 해서 알려주세요 예 ) var arr1 = ['20,51,90,10,527,1' ]; for(var i=0; i < student_cnt ; i++ ) { var arr1 = arr1[i]; // ===================> 아래 변수에 들어가는 값 var row = "
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.*
답변에 대한 댓글 2개
답변에 대한 댓글 3개
print_r($match_student); 를 코드 맨 위에 넣어서 배열이 어떻게 생겨 먹은 것인지 나오는 결과를 올려보세요
질문으로 보아 $match_student[1][0]= 20; $match_student[1][1]= 51; ~~~이렇게 된 것으로 보이는데 아닌가봐요?
</p>
<p>var match_cnt = <?php echo $match_student?>;</p>
<p> </p>
<p>for (i=0;i<student_cnt ;i++ ) {</p>
<p>var new_row1 = "<tr class='new_row'><th><b>*</b> </th><td> <input type='text' name='student[]' class='required' value='<?=strip_tags($match_student[1][$i])?>' ></p>
<p>생략</p>
<p>답변에 대한 댓글 1개
2. 결과 값이 value='20' value='51' value='90' ...맞습니다. 그렇게 출력되어야 합니다.
알려주신 var arr1 = arr1[i]; 변수에 들어가는 걸 정의해도
순차적으로 증가하지 않고 아마 [0]번 값만 반복되버리는 상황입니다.
var arr = <?php echo json_encode($list);?> ;
console.log(arr);
console.log(arr[3]);
찍어보면 전체도 한개도 잘나옵니다. 이제
for (var i = 0; i < arr.length; i++) {
if((student_cnt-1)/img_cnt >2.5) {
var new_row1 = "<tr><th><b>*</b> </th><td> <input type='text' name='same_student[]' value='"+ arr[i] + "' '></td>
이렇게 + arr[i] + 하면 문제가 있고 value='"+ arr[3] + "' 숫자를 직접해보면 해당 3번째가 잘나오고 이유를 모르겠습니다.
의심스러운건
스크립트 실행시키기 전에
tr을 몇개 생성할지 자동으로 정하도록 했는데
3개라면
3개의 tr이 생성되면서
var new_row1 = "<tr><th><b>*</b> </th><td> <input type='text' name='same_student[]' value='"+ arr[i] + "' '></td> 이게
$(".old_row1").replaceWith(new_row1); 으로 replace되어서
동시에 3개가 들어가니 i값이 증가되지 않고 arr[0]번값만 반복되는건지...뭔지...초보라 감이 오지 않습니다. 흑흑
참고로 표 3개 생성되면
replace되지 않은 부분에 <?=$k?>를 넣어봤더니 이건 순차적으로 0. 1. 2 잘 나옵니다.
replace되는 부분에 <?=$k?>넣어보니 0, 0, 0 이라고 바뀌지 않는 현상입니다.
왜 내 스크립트만 안될까요,,ㅡㅜㅜ
0,1,2 ,,이렇게 php는 잘나오는거는 php실행되면서 0,1,2 나오는것이며
이후 replace스크립트가 실행되어 그런거 아닌가 싶구요,,,생각해보니
결론은 생성되는 tr사이즈를 읽어서 순차적으로 i값을 뿌려줘야 할거 같습니다. 그렇지만 코드가 ㅎ..
전체 질문 목록