2014-04-23 1 views
0

사용자가 드롭 다운 메뉴에서 선택하는 옵션에 따라 숨겨진 값을 보내려고합니다.
제출 버튼을 두 번 눌러야하지만드롭 다운 양식 데이터와 함께 숨겨진 값을 보냅니 까?

이 문제를 해결할 수있는 방법이 있을까요 아니면 다른 방법을 사용해야합니까?

이것은 내가 지금 무엇을 가지고 : 당신이 제출 누른 후

<form name="input" action="<?php echo $_SERVER['PHP_SELF'];?>" method="get" onchange="this.form.submit()"> 
       <select name="myValue" value=""> 
       <option value="300"<?php if ($_GET['myValue']==300) {echo "selected='selected'"; } ?>>First Option</option> 
       <option value="800"<?php if ($_GET['myValue']==800) {echo "selected='selected'"; } ?>>Second Option</option> 
       </select> 

<?php if ($_GET['myValue']==300) {echo "<input type='hidden' name='hiddenValue' id='hiddenValue' value='123456'><br />"; } ?> 
<?php if ($_GET['myValue']==800) {echo "<input type='hidden' name='hiddenValue' id='hiddenValue' value='987456'><br />"; } ?> 

<input type="submit" value="Submit" /> 
</form> 


<?php 
echo "myValue: " . $_GET['myValue']; 
echo "<br />"; 
echo "hiddenValue: " . $_GET['hiddenValue']; 
?> 
+1

'<함께 숨겨진 필드를 채우기 위해 자바 스크립트 함수를 사용하는 것이 좋습니다 것입니다 옵션 값 = "123456"> 첫 번째 옵션' – Guns

+0

무엇을하려고합니까? –

+0

무엇을하려고합니까? –

답변

0

왜 당신은 PHP 스크립트에 숨겨진 가치를 추가하지 않습니다. 옵션 A가 선택되면 $ hiddenvalue = X입니다. 그렇지 않으면 옵션 B가 선택되면 $ hiddenvalue = y입니다. 대신 형태로 GET의 POST 메소드를 사용하지 않는 이유

<?php 

    $selection = $_GET['myValue']; 

    if ($selection == 1) { 
    $hidden = "x"; 
    } elseif ($selection == 2) { 
    $hidden = "y"; 
    } 

    echo $selection; 
    echo "<br />"; 
    echo $hidden; 

?> 
+0

완벽하고 방금 내가 찾고 있던 것이 었습니다.정말 고맙습니다. – DecodedMonkey

+1

@DecodedMonkey 그리고 숨겨진 값을 다시 보내지 않고 양식을 제출하지 않으려면 echo $ hidden을 사용하여 하나의 말풍선 요청을하십시오. – dkakoti

0

,

<?php 
echo "myValue: " . $_POST['myValue']; 
echo "<br />"; 
echo "hiddenValue: " . $_POST['hiddenValue']; 
?> 
+0

아무런 차이가 없습니다. –

0

이 옵션에 대한 값으로 숨겨진 값을 사용할 수 있습니다 : 여기

내가 제안 것입니다 :

<form name="input" action="<?php echo $_SERVER['PHP_SELF'];?>" method="get" onchange="this.form.submit()"> 
       <select name="myValue" value=""> 
       <option value="123456"<?php if ($_GET['myValue']==300) {echo "selected='selected'"; } ?>>First Option</option> 
       <option value="987456"<?php if ($_GET['myValue']==800) {echo "selected='selected'"; } ?>>Second Option</option> 
       </select>  
<input type="submit" value="Submit" /> 
</form> 

을 변경할 수없는 경우 자바 스크립트 기능을 사용하고 ajax 호출을 사용하십시오.값

희망이 도움이되었습니다.

0

사용자가 드롭 다운 상자에서 선택한 항목을 기반으로 양식을 제출하기 직전에 드롭 다운 상자의 값을 가져오고 숨겨진 상자를 추가하려고하지 않는 이유는 무엇입니까?

이 같은 아마 뭔가 : http://jsfiddle.net/7sXXy/

formSubmit() { 
    var select = $("#select"); 
    if(select.val() == 300) { 
    select.after("<input type='hidden'/ name='hidden' value='1'/>"); 
    }else{ 
    select.after("<input type='hidden'/ name='hidden' value='2'/>"); 
    } 
    return true; 
} 
0

당신이 궁극적으로 내가 할 수있는 최선이 특정 사용 케이스를 충족하고,이 데이터로 할 싶어하는지 모른 채. 좀 더 복잡한 작업을 원한다고 가정하면 약간 수정해야합니다.

<form name="input" action="<?php echo $_SERVER['PHP_SELF'];?>" method="get" onchange="this.form.submit()"> 
       <select name="myValue" value=""> 
       <option value="300"<?php if ($_GET['myValue']==300) {echo "selected='selected'"; } ?>>First Option</option> 
       <option value="800"<?php if ($_GET['myValue']==800) {echo "selected='selected'"; } ?>>Second Option</option> 
       </select> 


<input type="submit" value="Submit" /> 
</form> 


<?php 
$myValue = $_GET['myValue']; 
echo "myValue: " . $myValue; 
echo "<br />"; 
echo "hiddenValue: " . ($myValue == 300 ? 123456 : ($myValue == 800 ? 987456 : '')); 
?> 
0

내가 제출에서 선택한 옵션을 읽고 당신이 좋아하는 옵션 값에 숨겨진 값을 해달라고 왜

<script> 
function fillhiddenformfield(formobj) 
{ 
    // the select element 
    var se = formobj.myValue; 

    // the selected value 
    var sv = se.options[se.selectedIndex].value; 

    // set the hidden field 
    formobj.hiddenValue.value = sv; 

    // return true to submit the form 
    return true; 
} 
</script> 

<? // action is obsolete here as your are sending to this script ?> 
<form name="input" method="get" onsubmit="fillhiddenformfield(this)"> 
      <select name="myValue" value=""> 
      <option value="300"<?php if ($_GET['myValue']==300) {echo "selected='selected'"; } ?>>First Option</option> 
      <option value="800"<?php if ($_GET['myValue']==800) {echo "selected='selected'"; } ?>>Second Option</option> 
      </select> 
<input type='hidden' name='hiddenValue' id='hiddenValue'> 
관련 문제