无法获得我的文本域的价值

时间:2013-01-08 12:05:46

标签: php javascript select textfield option

无法使用php获取我的textfield'new_list_id'的值。这是我的代码:

<select id="mymenu" size="1" name='sf_old' class='short_tf'>
<option >&nbsp;</option>
<option value="nothing">New Input</option>
<option value="101">101</option>
<option value="102">102</option>
</select>

<input type='text' class='short_tf' name='new_sf' id='new_list_id' style='display:none;'/>

<script type="text/javascript">
  var selectmenu=document.getElementById("mymenu")
  selectmenu.onchange=function(){
  var index = selectmenu.selectedIndex;
  if (index == '1'){
    document.getElementById('new_list_id').style.display='inline';
    document.getElementById('mymenu').style.display='none'; 
 }
}
</script>

使用php我可以获取我的SELECT标签'mymenu'的值,如果它是选中的那个但我无法检索我的textfield'new_list_id'的值,如果它是一个存在且SELECT标签被隐藏。< / p>

(问题) 我得到的文本字段的值是字符串“nothing”,它来自我的SELECT标签。无法弄清楚为什么。 - 我是一名菜鸟程序员,也很抱歉我的英语很差..非常感谢你的帮助。

我也使用了name属性,但它给了我相同的结果。请检查我的PHP代码。感谢

if(isset($_REQUEST['sf_old']))
{    $sf=$_REQUEST['sf_old'];}
elseif(isset($_REQUEST['new_sf']))
{    $sf=$_REQUEST['new_sf'];}
else
{    $sf='';}

echo $sf;

4 个答案:

答案 0 :(得分:1)

从php中你必须使用“name”属性。 “new_sf”id属性主要用于客户端脚本。

答案 1 :(得分:1)

试试这个:

<input type='text' class='short_tf' name='new_list_id' id='new_list_id' style='display:none;'/>

name属性是PHP用来检索值的属性。

答案 2 :(得分:1)

将元素的display样式属性更改为none只会使可视隐藏。它不会改变将要或不会被发送到服务器的事实。因此,第一个条件始终为true,如果从未触发,则为else子句。

您可以尝试另一种方式:

$sf = "";

if(isset($_POST['sf_old']) && isset($_POST['new_sf'])){
  if($_POST['sf_old'] == "nothing"){
    $sf = $_POST['new_sf'];
  } else {
    $sf = $_POST['sf_old'];
  }
}

echo $sf;

我更喜欢直接使用$_POST代替$_REQUEST

答案 3 :(得分:0)

我是这样的: 你想从输入字段中获取值,如果它不是空的,否则你想要下拉值。

如果陈述有点

,你需要扩展你

这是整个代码:

<?php 

$sf='';

if(isset($_REQUEST['sf_old'])){    
    $sf = $_REQUEST['sf_old'];
        if($sf == "nothing")
            if(isset($_REQUEST['new_sf'])){
                $sf = $_REQUEST['new_sf'];
        }

    }

    echo $sf;
    ?>