찾다

 >  Q&A  >  본문

규모에 맞게 동적으로 HTML 양식 채우기: PHP의 SQL 값을 통해

이 질문은 코드를 작성하는 방법보다 "SCALE" 측면에서 구현하려는 프로세스/로직과 더 관련이 있습니다.

WordPress에는 사용자가 로드할 맞춤 게시물(실제로는 CMS에 익숙하지 않은 사용자를 위한 새 데이터베이스 항목)을 생성할 때 새 "이벤트"를 기록하기 위해 HTML로 로드되는 여러 양식이 있습니다. 이 이벤트에 대한 모든 데이터베이스 테이블을 채우기 위해 update_post_meta()来设置数据库条目/文章的名称和值 - 所以当提交表单时,我使用php循环foreach ($_POST as $name => $value) {를 사용하므로 모든 것을 수동으로 매핑하고 싶지 않습니다.

이것은 잘 작동하지만 이제 사용자가 양식을 저장하고 나중에 편집하기 위해 다시 돌아오는 경우 값이 존재하는 경우 다음과 같이 다시 에코되기를 원합니다.

으아아아

이 접근 방식은 잘 작동하지만 이 페이지에는 거의 500개의 필드가 있으므로 각 필드에 대해 고유 변수(이 경우 $reported_by)를 수동으로 설정하는 데 시간이 오래 걸리고 기본적으로 코드 베이스가 거의 50% 증가하여 유지 관리가 어렵고 비효율적입니다.

이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 당연히 PHP를 통해 양식을 작성하고 이를 HTML로 에코할 수 있지만 이는 매우 수동적인 프로세스처럼 느껴집니다. PHP는 서버 측이므로 AJAX를 사용하지 않는 한 클라이언트 측에서 태그/입력의 이름 값을 쉽게 얻을 수 없습니다. 하지만 그것도 상당히 수동화될 것 같습니다.

어쨌든 변수 이름을 수동으로 설정하지 않고도 이 프로세스를 500개 필드 모두로 더 쉽게 확장할 수 있는 방법이 없다면 많은 중복 작업에 직면하게 됩니다.

시간 내주셔서 감사합니다!

P粉765570115P粉765570115445일 전620

모든 응답(1)나는 대답할 것이다

  • P粉308089080

    P粉3080890802023-09-11 11:38:54

    가장 먼저 주목해야 할 점은 실제로 각 양식 입력에 대해 서로 다른 이름의 로컬 변수를 만들 필요가 없다는 것입니다. 즉, 다음과 같이 작성할 필요가 없습니다.

    으아악

    다음과 같이 쓸 수 있습니다:

    으아악

    이것이 왜 도움이 되나요? 이제 항목과 관련된 항목은 2개뿐이므로:

    • "기자(성명)" 태그
    • 필드 이름 "reported_by", 여러 곳에서 사용됨

    둘 다 문자열이므로 PHP 변수로 쉽게 추출할 수 있습니다.

    으아악

    이것들은 매개변수와 매우 유사하므로 이를 함수로 바꾸고 $incident_id도 전달하는 것을 기억하세요.

    으아악

    이제 display_input函数500次就可以显示500个输入项。为了避免这样,可以使用一个数组和foreach루프를 호출하기만 하면 됩니다.

    으아악

    그러면 하드코딩하는 대신 구성 파일이나 데이터베이스 테이블에서 배열을 가져올 수 있습니다. 반복적인 부분(HTML 렌더링의 세부 사항)을 자동화하여 "재미있는" 부분(표시할 필드 목록 정의)만 남겼습니다.

    일부 필드가 약간 달라야 하는 경우 함수(및 구성 배열)에 몇 가지 추가 옵션을 추가할 수 있지만 변경 사항이 너무 많지 않는 한 코드는 매우 간단하고 간단하게 유지되어야 합니다.

    회신하다
    0
  • 취소회신하다