私のMySQLデータベースにIDの代わりに都市の名前を保存します。(ドロップダウン、Php、Mysql)をmysqlに格納された値で
public function getCity() {
if(isset($this->attiva)) {
$base = mysql_connect ('localhost', 'bolmdb', 'bolmdb');
mysql_select_db ('bolmdb', $base);
$result = mysql_query("SELECT * FROM city WHERE idstate=$_POST[idcity]");
$city = '<option value="0">Select City...</option>';
while($row = mysql_fetch_array($result)) {
$city .= '<option value="' . $row['idcity'] . '">' . utf8_encode($row['nomecity']) . '</option>';
}
return $city;
}
}
とフォームのHTML::都市のリストを構築するためのPHP関数は次のようなものであるフォームが送信されたときに
</label>City:</label>
<select id="city" name="city" value="" ><br />
<option>Select City...</option>
</select>
だから、私は$city = $_POST['city']
と値を取得します。 IDとしてMySQLに格納されています。 IDの代わりに市の名前を保存するにはどうすればいいですか?
[編集:]こんにちは!ご返事ありがとうございます。たぶん私は私をよく説明しなかったでしょう。私の問題は、$ row ['idcity']をオプション値に保持して、ドロップダウンリストにajaxを動的に設定する必要があることです。明らかに、データを取得するには、State MysqlテーブルとCity MysqlテーブルをIDフィールドで接続する必要があります。 状態テーブル:
CREATE TABLE `state` (
`idstate` int(4) NOT NULL auto_increment,
`nomestate` varchar(50) NOT NULL default '',
PRIMARY KEY (`idregione`)
) TYPE=MyISAM AUTO_INCREMENT=161 ;
--
-- Dump dei dati per la tabella `state`
--
INSERT INTO `state` VALUES (1, 'Marche');
...
CITY表:
CREATE TABLE `city` (
`idcity` int(4) NOT NULL auto_increment,
`nomecity` varchar(20) NOT NULL default '',
`idstate` int(4) NOT NULL default '0',
`siglacity` char(2) NOT NULL default '',
PRIMARY KEY (`idprovincia`)
) TYPE=MyISAM AUTO_INCREMENT=109 ;
--
-- Dump dei dati per la tabella `city`
--
INSERT INTO `city` VALUES (1, 'Ancona', 1, 'AN');
...
と2つのPHP funcions:
public function getState()
{
if(isset($this->attiva))
{
$base = mysql_connect ('localhost', 'bolmdb', 'bolmdb');
mysql_select_db ('bolmdb', $base);
$result = mysql_query("SELECT * FROM state");
$state = '<option value="0">Select State...</option>';
while($row = mysql_fetch_array($result))
{
$state .= '<option value="' . $row['idstate'] . '">' . utf8_encode($row['nomestate']) . '</option>';
}
return $state;
}
}
public function getCity()
{
if(isset($this->attiva))
{
$base = mysql_connect ('localhost', 'bolmdb', 'bolmdb');
mysql_select_db ('bolmdb', $base);
$result = mysql_query("SELECT * FROM city WHERE idstate=$_POST[idstate]");
$city = '<option value="0">Select City...</option>';
while($row = mysql_fetch_array($result))
{
$city .= '<option value="' . $row['idcity'] . '">' . utf8_encode($row['nomecity']) . '</option>';
}
return $city;
}
}
しかし、私は$city = $_POST['city'];
で値を取得するときに、このように私は、データベースに格納ID値。私はCITYテーブルのNOMESTATEでIDSTATEを変更することを考えましたが、それはそれを解決する良い方法ではなく、また@Gerardが非ASCII文字の問題を引き起こす可能性があることがわかりました。最後に、オプション値の代わりに出力関数(具体的には. utf8_encode($row['nomecity']) .
)を得る方法がある場合、私は好奇心の問題として疑問に思う。
こんにちは私は分かりません。私のデータベースフィールドはこのようなものです( 'city' varchar(40)NOT NULL、)、idcityオプションの値をajaxのドロップダウンリストに入力します。ありがとうございました。 – anemiCCinema