두 개의 이전 질문을 taking info put into a form and using it to populate a page에하고, 하나는 redirect you to a page when you submit the form을 기반으로합니다 양식에서 선택한 항목을 드롭 다운합니다. 이제는 두 가지가 동일한 형태로 작동하기 위해이 두 가지가 필요합니다.양식을 작성해야합니다. 드롭 다운에서 선택한 페이지로 이동 한 다음 양식의 다른 정보를 사용하여 선택한 페이지를 채 웁니다.
양식에서 정보를 복용하고 다음 페이지를 populae하는 데 사용하기위한 코드는 다음과 같습니다
<?php
$firstname = $_GET['personsName'];
echo "My Name is" .$firstname;
?>
그리고 그 형태는 다음과 같을 것이다 :
<form action="letter.php" method="get">
<input type="text" name="personsName"></input>
<input type="submit" value="submit">
</form>
코드를를 선택 페이지는 다음과 같습니다 :
$pages = array('Page 1' => 'page1.php', 'Page 2' => 'page2.php', 'Page 3' => 'page3.php');
if (array_key_exists($_POST['dropdown-name'], $pages)) {
header("Location: " . $pages[$_POST['dropdown-name']]);
} else {
echo "Error processing form"; // submitted form value wasn't in your array, perhaps a hack attempt
}
이 두 가지 모두 동일한 양식에서 작동해야합니다. 그것을 알아 낸다. 내가 시도한 것은 :
<form action="<?=$pages?>" method="POST">
<input type="text" name="name" /><br />
<select name="letter">
<option value="Page 1">
Page 1
</option>
<option value="Page 2">
Page 2
</option>
<option value="Page 3">
Page 3
</option>
</select>
<input type="submit" value"Print" />
</form>
분명히 잘못되었습니다. 정보를 입력하고, 선택한 페이지로 리디렉션 한 다음, 양식에 입력 된 다른 정보로 페이지를 채우려면이 양식이 필요합니다. 문제는 내가 이미 가지고있는 해답을 얻는 방법을 모른다. 그 모든 도움에 감사드립니다!
현재 코드는 이것이다 :
<script type="text/javascript">
$(function UpdateFormAction(){
alert('Launched event handler');
var form = document.getElementById('MyForm');
var list = document.getElementById('PageList');
alert('List item numer ' + list.selectedIndex);
var desiredAction = list.options[list.selectedIndex].value
alert('Desired action set to ' + desiredAction);
form.action = desiredAction;
});
</script>
양식이다 : 당신은 당신이 리디렉션을 수행 할 때 서버에 전송되는 데이터를 잃고
<form id="MyForm" action="letter.php" method="POST">
<input type="text" name="name" /><br />
<select id="PageList" name="letter" onchange="UpdateFormAction();">
<option value="letter.php">Page 1</option>
<option value="letter2.php">Page 2</option>
<option value="letter3.php">Page 3</option>
</select>
<input type="submit" value"Print" />
</form>
실제 형태에서 나는 리디렉션 된 페이지를 채우는 정보 10 개를 받고있을 것입니다. 이 방법을 사용하는 것이 너무 많습니까? – Zach
URL 길이에 제한이 있습니다 (IE6의 경우 1024 자 이상, 모든 최신 브라우저의 경우 4096 이상). 따라서 데이터가 무엇인지에 따라 달라집니다. 간단한 입력 필드는 괜찮지 만 큰 텍스트 영역이 문제가 될 수 있습니다. – Basic
아 물론 물론 간단한 자바 스크립트를 사용하여 드롭 다운이 변경되면 양식의 '액션'이 해당 페이지로 변경되므로 중간에 PHP 단계가없고 원하는 페이지. – Basic