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を使用して、選択されたタグ「mymenu」の値を取得できますが、テキストフィールド「new_list_id」が存在し、SELECTタグが非表示の場合、その値を取得できません。

(問題)テキストフィールドで取得した値は、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

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ます。

于 2013-01-08T12:54:36.143 に答える
1

PHP からは、「name」属性を使用する必要があります。「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 に答える
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;
    ?>
于 2013-01-08T12:59:47.280 に答える