0

結合を行い、後のフォーム要素の配列を作成するために変更した次のコードがあります。

$usersitems = '';
$db_connection = mysql_connect($dbhost,$dbuser,$dbpassword);
if($db_connection && mysql_select_db($dbname,$db_connection)){
    $usersquery = 'SELECT DISTINCT tablea.uid, tableb.FirstName, tableb.LastName FROM tablea, tableb WHERE tablea.uid = tableb.EmpNo ORDER BY tablea.uid ASC';
    $users = mysql_query($usersquery,$db_connection);
    if($users){
        while ($user = mysql_fetch_array($users, MYSQL_NUM)) {
            $usersitems .= '<option value="'.$user[0].'">'.$user[0].'- '.$user[1].' '.$user[2].'</option>';  
        }
        mysql_free_result($users);
    }
    mysql_close($db_connection);
} 

また、オプションを更新して [1] と [2] を含め、元のオプションごとに FirstName と Lastname を表示しました。

<option>'.$user[0].'</option>

これにより、これが正常に作成されます。

<select id="user_id"><option value="104">104- John Doe</option>

私のjavascriptで、フォームで選択したものを消費するために使用されたと思われるこのテキスト行を見つけました:

uid = $("#user_id option:selected").text();

突然、これは機能しませんか?これは、元の '.$user[0].' オプション内の value="'.$user[0].'" を探していませんでした。これを変更するにはどうすればよいですか?

4

1 に答える 1

3

コードを次のように変更します。

uid = $("#user_id").val();

これは、選択されたオプションの値を返します。

これは、オプションを行っていた古い方法でも機能します。オプションに属性がない場合、valueデフォルトでテキストが使用されます。

于 2013-02-27T19:55:55.903 に答える