2010-12-07 5 views
1

동일한 작업 및 제출 단추로 한 페이지에 양식을 생성하는 MySQL이 있습니다. 양식의 수는 다양합니다. 그들은 제출할 때 모두 동일한 PHP 파일을 호출합니다. 또한, 제출시 데이터를 수집하는 하나의 PHP 파일이 있습니다. 아래 예제를 참조하십시오.여러 양식과 하나의 PHP 수신기

양식 중 하나가 제출되면 값이 다른 양식의 다른 필드와 혼동 될 수 있습니다. 예 : form1이 제출되면 PHP는 form6의 값을받습니다.

각 양식이 자체 값을 제출하도록하려면 어떻게해야합니까?

HTML 코드 예제 :

<form method="POST" action="index.php?action=newhistory" name="history_1"> 
    <input type="hidden" name="id" value="1"> 
    <input type="text" name="history"> 
    <input type="submit" name="add_history" value="Submit"> 
</form> 

<form method="POST" action="index.php?action=newhistory" name="history_6"> 
    <input type="hidden" name="id" value="6"> 
    <input type="text" name="history"> 
    <input type="submit" name="add_history" value="Submit"> 
</form> 

PHP 코드 예 :

case 'newhistory': 

    $id = $_POST['id']; 
    $history = $_POST['history']; 

    $sql = mysql_query("INSERT INTO history (id, history) VALUES('".$id."', '".$history."')", $link); 

    break; 

모든 솔루션을?

+0

다른 이름의 양식에도 속하지만 모든 필드에 동일한 이름을 사용하는 이유는 무엇입니까? –

+0

각 필드에 대한 변수 생성의 번거 로움을 덜어줍니다. 또한 필드가 자동 생성되므로 앞으로 얼마나 많은 필드가 있는지 알 수 없습니다. 나는 그것이 의미가 있기를 바랍니다. –

답변

1

<form></form> 태그로 캡슐화 된 콘텐츠를 제출합니다. 같은 양식에 여러 양식의 action 속성이 있어야 문제가 발생하지 않습니다.

여기 작성한 코드는 정상적으로 보입니다. HTML 코드를 확인하고 각 양식 요소를 둘러싼 <form></form> 태그가 있는지 확인하십시오.

+0

그래, 내가 포럼을 쓴 양식 대신에 어리석은 실수를했다 ... 고마워. –

1

제출 버튼에 다른 이름을 사용하고 확인하십시오.

if(isset($_POST('add_history')) 
{ 
} 

if(isset($_POST('add_history1')) 
{ 
} 
+0

이것은 불필요한 복잡성을 추가합니다. 양식이 동일하면 처리 논리를 분리 할 필요가 없습니다. 적어도이 질문에 대해 정당화 할 필요는 없습니다. –

0

하나의 양식을 제출하면 브라우저는이 양식의 값만 보내야합니다. form1이 제출되면 PHP는 form6의 값을받지 못합니다. 어쩌면 양식 태그를 제대로 닫지 않았거나 JavaScript가 제대로 작동하지 않았을 수 있습니다.

관련 문제