고수님들...라디오버튼을 이용한 것인데요 이것을 선택박스변경이요
본문
고수님들...라디오버튼을 이용해서 만들었는데요 더이상 진도가 나가지 못해서요
절대 주소 뒤에 &wr_11=1&wr_12=1 이런식으로 변수값이 뒤에 적용이 됩니다.
원하는것은 wr_11 wr_12 wr_13 순서로 선택하면 선택한것이 활성되어서 남아있는데 이것을
꺼꾸로 선택하여 올라오면 wr_13 ~ 이것부터 선택한 것이 지워집니다.
라디오버튼은 안되는 것인지? 아니면 체크박스로 해야하는지 궁금합니다. ;;;;;;
<form name="multisearch" method="get">
<input type="hidden" name="bo_table" value="2001">
<input type="hidden" name="bcat" value="msearch">
<div>
<?php
$wr_11_value = isset($_GET['wr_11']) ? $_GET['wr_11'] : '';
$wr_11_options = array("강아지", "중도금", "사탕");
for ($i = 1; $i <= 10; $i++) {
echo '<input type="radio" name="wr_11" value="' . $i . '" onclick="multi_search_submit(\'' . $i . '\', \'' . $wr_12_value . '\', \'' . $wr_13_value . '\');"' . ($wr_11_value == $i ? ' checked' : '') . '> ' . $wr_11_options[$i-1] . ' ';
}
?>
</div>
<div>
<?php
$wr_12_value = isset($_GET['wr_12']) ? $_GET['wr_12'] : '';
$wr_12_options = array("사과", "바나나", "딸기");
for ($i = 1; $i <= 3; $i++) {
echo '<input type="radio" name="wr_12" value="' . $i . '" onclick="multi_search_submit(\'' . $wr_11_value . '\', \'' . $i . '\', \'' . $wr_13_value . '\');"' . ($wr_12_value == $i ? ' checked' : '') . '> ' . $wr_12_options[$i-1] . ' ';
}
?>
</div>
<div id="wr_13_div">
<?php
$wr_13_value = isset($_GET['wr_13']) ? $_GET['wr_13'] : '';
$wr_13_options = array("사과", "바나나", "딸기");
for ($i = 1; $i <= 3; $i++) {
echo '<input type="radio" name="wr_13" value="' . $i . '" onclick="multi_search_submit(\'' . $wr_11_value . '\', \'' . $wr_12_value . '\', \'' . $i . '\');"' . ($wr_13_value == $i ? ' checked' : '') . '> ' . $wr_13_options[$i-1] . ' ';
}
?>
</div>
</form>
<script>
function multi_search_submit(wr_11, wr_12, wr_13) {
var wr_13_div = document.getElementById("wr_13_div");
wr_13_div.innerHTML = '';
for (var i = 1; i <= 10; i++) {
var radio = document.createElement("input");
radio.type = "radio";
radio.name = "wr_13";
radio.value = i;
radio.onclick = function() {
multi_search_submit(wr_11, wr_12, this.value);
};
if (wr_13 == i) {
radio.checked = true;
}
var label = document.createElement("label");
label.innerHTML = i;
wr_13_div.appendChild(radio);
wr_13_div.appendChild(label);
wr_13_div.appendChild(document.createTextNode(" "));
}
var url = "../bbs/board.php?bo_table=2001&bcat=msearch&wr_11=" + wr_11 + "&wr_12=" + wr_12 + "&wr_13=" + wr_13;
window.location.href = url;
}
</script>
답변 2
코드를 실행했을때 다음과 같은 메세지가 발생했습니다.
PHP Notice: Undefined variable: wr_12_value in ...
PHP Notice: Undefined variable: wr_13_value in ...
PHP Notice: Undefined ...
그래서 조금 손을 보고 난 후의 코드 입니다만
<?php
$wr_11_value = isset($_GET['wr_11']) ? $_GET['wr_11'] : '';
$wr_12_value = isset($_GET['wr_12']) ? $_GET['wr_12'] : '';
$wr_13_value = isset($_GET['wr_13']) ? $_GET['wr_13'] : '';
?>
<a href="<?php echo $_SERVER['PHP_SELF']; ?>">init</a>
<form name="multisearch" method="get">
<input type="hidden" name="bo_table" value="2001">
<input type="hidden" name="bcat" value="msearch">
<div>
<?php
$wr_11_options = array("강아지", "중도금", "사탕");
for ($i = 1; $i <= count($wr_11_options); $i++) {
echo '<input type="radio" name="wr_11" value="' . $i . '" onclick="multi_search_submit(\'' . $i . '\', \'' . $wr_12_value . '\', \'' . $wr_13_value . '\');"' . ($wr_11_value == $i ? ' checked' : '') . '> ' . $wr_11_options[$i-1] . ' ';
}
?>
</div>
<div>
<?php
$wr_12_options = array("사과", "바나나", "딸기");
for ($i = 1; $i <= count($wr_12_options); $i++) {
echo '<input type="radio" name="wr_12" value="' . $i . '" onclick="multi_search_submit(\'' . $wr_11_value . '\', \'' . $i . '\', \'' . $wr_13_value . '\');"' . ($wr_12_value == $i ? ' checked' : '') . '> ' . $wr_12_options[$i-1] . ' ';
}
?>
</div>
<div id="wr_13_div">
<?php
$wr_13_options = array("사과", "바나나", "딸기");
for ($i = 1; $i <= count($wr_13_options); $i++) {
echo '<input type="radio" name="wr_13" value="' . $i . '" onclick="multi_search_submit(\'' . $wr_11_value . '\', \'' . $wr_12_value . '\', \'' . $i . '\');"' . ($wr_13_value == $i ? ' checked' : '') . '> ' . $wr_13_options[$i-1] . ' ';
}
?>
</div>
</form>
<script>
function multi_search_submit(wr_11, wr_12, wr_13) {
var wr_13_div = document.getElementById("wr_13_div");
wr_13_div.innerHTML = '';
for (var i = 1; i <= 10; i++) {
var radio = document.createElement("input");
radio.type = "radio";
radio.name = "wr_13";
radio.value = i;
radio.onclick = function() {
multi_search_submit(wr_11, wr_12, this.value);
};
if (wr_13 == i) {
radio.checked = true;
}
var label = document.createElement("label");
label.innerHTML = i;
wr_13_div.appendChild(radio);
wr_13_div.appendChild(label);
wr_13_div.appendChild(document.createTextNode(" "));
}
// var url = "../bbs/board.php?bo_table=2001&bcat=msearch&wr_11=" + wr_11 + "&wr_12=" + wr_12 + "&wr_13=" + wr_13;
var url = "<?php echo $_SERVER['PHP_SELF']; ?>?bo_table=2001&bcat=msearch&wr_11=" + wr_11 + "&wr_12=" + wr_12 + "&wr_13=" + wr_13;
window.location.href = url;
}
</script>
거꾸로 선택을 해 올라가도 선택한 것이 지워지는 현상은 발생하지 않고 있습니다.
또한 multi_search_submit 에서 동적으로 라디오버튼 10개를 만드는 부분은
아래쪽의 조합된 url 이 이동되는 순간 초기화 되어 나타났다 사라지는데
무슨 의미인지 잘 모르겠습니다.
!-->!-->
<form name="multisearch" method="get">
<input type="hidden" name="bo_table" value="2001">
<input type="hidden" name="bcat" value="msearch">
<div>
<?php
$wr_11_value = isset($_GET['wr_11']) ? $_GET['wr_11'] : '';
$wr_11_options = array("강아지", "중도금", "사탕");
for ($i = 1; $i <= 10; $i++) {
echo '<input type="radio" name="wr_11" value="' . $i . '" onclick="multi_search_submit(\'' . $i . '\', \'' . $wr_12_value . '\', \'' . $wr_13_value . '\');"' . ($wr_11_value == $i ? ' checked' : '') . '> ' . $wr_11_options[$i-1] . ' ';
}
?>
</div>
<div>
<?php
$wr_12_value = isset($_GET['wr_12']) ? $_GET['wr_12'] : '';
$wr_12_options = array("사과", "바나나", "딸기");
for ($i = 1; $i <= 3; $i++) {
echo '<input type="radio" name="wr_12" value="' . $i . '" onclick="multi_search_submit(\'' . $wr_11_value . '\', \'' . $i . '\', \'' . $wr_13_value . '\');"' . ($wr_12_value == $i ? ' checked' : '') . '> ' . $wr_12_options[$i-1] . ' ';
}
?>
</div>
<div id="wr_13_div">
<?php
$wr_13_value = isset($_GET['wr_13']) ? $_GET['wr_13'] : '';
$wr_13_options = array("사과", "바나나", "딸기");
for ($i = 1; $i <= 3; $i++) {
echo '<input type="radio" name="wr_13" value="' . $i . '" onclick="multi_search_submit(\'' . $wr_11_value . '\', \'' . $wr_12_value . '\', \'' . $i . '\');"' . ($wr_13_value == $i ? ' checked' : '') . '> ' . $wr_13_options[$i-1] . ' ';
}
?>
</div>
</form>
<script>
function multi_search_submit(wr_11, wr_12, wr_13) {
var wr_13_div = document.getElementById("wr_13_div");
wr_13_div.innerHTML = '';
for (var i = parseInt(wr_13) + 1; i <= 10; i++) {
var radio = document.createElement("input");
radio.type = "radio";
radio.name = "wr_13";
radio.value = i;
radio.onclick = function() {
multi_search_submit(wr_11, wr_12, this.value);
};
var label = document.createElement("label");
label.innerHTML = i;
wr_13_div.appendChild(radio);
wr_13_div.appendChild(label);
wr_13_div.appendChild(document.createTextNode(" "));
}
var url = "../bbs/board.php?bo_table=2001&bcat=msearch&wr_11=" + wr_11 + "&wr_12=" + wr_12 + "&wr_13=" + wr_13;
window.location.href = url;
}
</script>
답변을 작성하시기 전에 로그인 해주세요.