1

无法使用 php 获取我的文本字段“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”的值,如果它是选定的,但如果它存在并且 SELECT 标记被隐藏,我无法检索我的文本字段“new_list_id”的值。

(问题)我为我的文本字段获得的值是来自我的 SELECT 标记的字符串“nothing”。想不通为什么。- 我是一个新手程序员,也很抱歉我的英语不好..非常感谢你的帮助。

我也在使用 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

4 回答 4

1

在 php 中,您必须使用“名称”属性。“new_sf” id 属性主要用于客户端脚本。

于 2013-01-08T12:07:51.527 回答
1

试试这个:

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

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

于 2013-01-08T12:08:34.507 回答
1

display将元素的样式属性更改为none只会使其在视觉上隐藏。它不会改变它会或不会被发送到服务器的事实。因此,第一个条件始终为真,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.

于 2013-01-08T12:54:36.143 回答
0

我假设:如果输入字段不为空,您希望从输入字段中获取值,否则您希望从下拉列表中获取值。

你需要扩展你的 if 语句

这是整个代码:

<?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;
    ?>
于 2013-01-08T12:59:47.280 回答