2011-08-29 7 views
1

동적 HTML 테이블이 있는데 POST 메서드를 사용하여 해당 테이블에서 데이터를 검색하려고합니다. 이것을 할 수 있습니까? 이를 달성하기 위해 어떤 다른 방법을 권하고 싶습니다. 여기에 내가 가진 것과 간단한 예제 : HTML 테이블에서 PHP로 데이터 검색

<html> 
     <form id="form1" method="post" action="process.php"> 
     <table id="tblSample" name="tblSample"> 
     <tbody> 
      <tr> 
       <td> 
       John Appleseed 
       </td>  
       <td> 
       Australia 
       </td> 
      </tr> 
      <tr> 
       <td> 
       Mary Poppins 
       </td> 
       <td> 
       USA 
       </td> 
      <tr> 
      </tbody> 
      </table> 
     </form> 
</html> 

는 아마 활동 파일에 게시하기 위해 자바 스크립트 배열이나 변수에 정보를 저장하는 것이 가능, 나는 확실하지 않다.

내가 할 일이 있는지 모르겠지만 테이블이 동적으로 생성됩니다. 행과 셀은 자바 스크립트를 사용하여 사용자가 추가합니다.

답변을 많이 보내 주시면 감사하겠습니다.

답변

2

테이블이 같은 액세스 할 수 없습니다, 등등) 그들에 name 속성을 추가하십시오; 그런 다음 $_POST을 사용하여 요소에 액세스 할 수 있습니다.

테이블에 데이터가있는 경우 데이터를 검색하는 가장 좋은 방법은 innerHTML을 사용하는 JavaScript입니다.

+0

IMO,이 두 가지 옵션을 일반적으로 훨씬 테이블과 입력/textarea 태그를 결합하는 innerHTML을 사용하는 것보다 (데이터를 구문 분석해야합니다 HTML에서 어쨌든 필요). – jozzas

0

양식의 innerHTML을 변수에 할당하고 AJAX를 사용하여 문자열을 서버에 다시 게시하거나 textarea에 저장하고 동일한 작업을 수행 할 수 있습니다. 그럼에도 불구하고 문자열을 파싱하여 데이터를 추출해야합니다.

0

테이블은 양식 컨트롤이 아니며 양식 태그에 포함 된 경우에도 양식 데이터로 제출되지 않습니다 (예에서와 같이).

표 형식의 데이터를 제출하려면 Javascript를 사용하여 추출해야합니다. 그런 다음 숨겨진 양식 요소에 데이터를 삽입하거나 AJAX 호출을 통해 데이터를 제출할 수 있습니다.

0

당신이 사용하려고 할 수 있습니다

HTML :

<form id="form1" method="post" action="process.php" onSubmit="submitAction();"> 
    <input type="hidden" name="table_content" id="table_content"/> 
    <input type="submit" name="submit" value="Send"/> 

자바 스크립트를 : 당신은 폼 요소 (input, textarea을 사용하지 않는

function submitAction() 
{ 
    var form = document.getElementById("form1"); 
    form.table_content.value = document.getElementById("tblSample").innerHTML; 
    return form.submit();  
} 
0

이 문제를 해결하는 방법은 여러 가지가 있습니다. 예 : 1) ajax를 사용하십시오 : 클래스 이름이 'formData_name'이거나 id = 'formData _'+ name = 인 span과 같은 일부 html 컨테이너에 데이터를 넣으십시오. 여기서 name은이 데이터의 이름입니다. 그러면 JS에서이 모든 범위를 검색하고 아약스로 보냅니다. jquery를 사용하면 매우 간단합니다. 순수한 js에서 이것은 어렵지 않지만 코드는 더 커질 것입니다.

2) 예를 들어 클래스 이름이 'formData_name'이거나 id = 'formData _'+ name = 인 span과 같은 일부 HTML 컨테이너에 데이터를 넣으십시오. 여기서 name은이 데이터의 이름입니다. 사용자가 제출을 클릭하면 dom에 입력 된 숨겨진 필드 adn이 true를 반환하는 만들기 버튼을 제출하는 바인딩 제출 단추. 3) 당신은 당신이 행동에게 제출에 입력

모든 TD를 대체 할 수있다) 이벤트를 입력하고 저장 innerHTML을 위해 숨겨진 필드를 추가하고 서버 4 구문 분석 결합을 통해 우편으로 innerHTML을 보낼 수 있습니다 그러나 만약이 모든 솔루션을 잘하지 당신은이 중 일부를 수행해야합니다 귀하의 프로젝트 구조가 잘못되었습니다