2011-10-31 3 views
0

내 페이지에 빈 html 표 (열)가 있습니다. 나는 지난 년 동안 정보가있는 CSV 파일을 가지고 있는데 그 열은 입니다. 그러나 수동으로 입력해야 할 새로운 정보가있을 수 있기 때문에 처음에 그 값을 테이블에 쓰고 싶지는 않습니다. ( 세포가있을 수 있습니다.) 에이 열을 채우는 버튼을 만들고 싶습니다. 이 문제에 관해 가장 좋은 방법은 무엇입니까 ? 정보를 동적으로 입력하려면 나는 분명히 아약스 호출을 사용해야 할 것이고, 유용한 함수 fgetcsv()가 있기 때문에 php 파일을 호출 할 것이지만, 이 함수를 사용하여 기존 테이블에 정보를 입력 할 수 있습니까? 나는 에 PHP를 사용할 수 있었지만,이 정보가있는 테이블을 만들었지 만, 내가 이해하는 한, PHP는 DOM에 대한 지식이 없다 ... 어떻게 든 전체 열 정보를 패키지해야하고 자바 스크립트는 작업을 수행해야한다. 하지만 조금 혼란 스럽네요 ...PHP를 사용하여 기존 표를 채우십시오.

다음은 어떻게 PHP를 사용하여 내 테이블을 만들 었는지 보여줍니다. 당신은 당신이 다음 당신의 자바 스크립트에서이 작업을 수행 할 수 있습니다 인쇄하여 Ajax 응답 위의 코드가있는 경우

$file = fopen("SGS_Fall_Booklist.csv", "r"); 
$entry= fgetcsv($file); 
echo $entry[0] . $_GET["program"] . $entry[1] . $GET["school"] . 
$entry[2] . $GET["term"]; 
echo "<br>AutoFill (last years ISBN's)<br><input id='checkall' type='checkbox' </input>"; 
echo "<table><tr> 
    <th>Edit</th> 
    <th class='coursename'>" . $entry[6] . "</th> 
    <th class='startdate'>" . $entry[7] . "</th> 
    <th class='booktitle'>" . $entry[17]. "</th> 
    <th class='author'>" . $entry[18]. "</th> 
    <th class='isbn'>" . $entry[16]. "</th> 
    </tr>"; 
while(! feof($file)) 
{ 
    $entry = fgetcsv($file); 
    echo "<tr> 
     <td><input type='checkbox'></input></td> 
     <td class='coursename'>" . $entry[6] . "</td> 
     <td class='startdate'>" . $entry[7] . "</td> 
     <td class='booktitle'>" . $entry[17]. "</td> 
     <td class='author'>" . $entry[18]. "</td> 
     <td class='isbn'></td> 
    </tr>";         
} 

echo "</table>"; 
fclose($file); 

답변

1

그래서 여기에 몇 가지의를 할 수있다 :

  1. (최악의 경우) 전체 테이블을 PHP로 아약스 호출로 보내면 PHP가 열을 추가하고 업데이트 된 테이블을 반환합니다 (나쁜 계획, 많은 양의 변경되지 않은 데이터가 전송 됨)

  2. (더 나은) Ajax 호출은 배열을 가져 오거나 데이터 오브젝트를하고 테이블을 반복 자바 스크립트를 사용하도록 새 열 (더 나은)

  3. (최고) Ajax 호출과 완전히 새로운 테이블을 반환하고

    //do your ajax request 
    foreach(newColumnValues AS key=>value) { 
        foreach(document.getElementByID("yourtable").elements) { 
          //If the ordering can change, check the key first, otherwise you could 
          //just go through every element 
          if(element[0] == key) { 
           element[1] = value; 
          } 
        } 
    } 
    

    행운을 빕니다 : 데이터

의사 코드를 추가!

1

을 :

document.getElementById('container-id-here').innerHTML(your_ajax_response_text); 
+0

사실 내 질문은 내 아약스 응답을 만드는 방법이었습니다. 전체 데이터 열을 수집하고 보내려면 어떻게해야합니까? 그리고 다시 새 테이블에 넣을 수 있습니까? json이이 중 일부에 유용 할 거라고 상상하지만, 전에 사용하지 않았고 사용 방법을 분명히하지 않았습니다 ... – user1015214

관련 문제