忍者ブログ

からすまる日誌 mySQL

授業ノートのまとめ

基本(13) データベースの中身をプルダウンに

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

基本(13) データベースの中身をプルダウンに


入力が終わったのでtest1.phpに戻りましょう
while文で回す
先にhogehogeを書いて、そこにphpを当てはめると良い
 
     //<option value="">hogehoge</option>
    <option value="<?php echo $row["p_id"]; ?>">
 

文字列をPHPに書き出すときはサニタイズが必要

<?php echo $row["pref"]; ?>
<?php echo htmlspecialchars($row["pref"],ENT_QUOTES); ?>

サニタイズ/関数の二階建て
 
よくあるエラー:
アンエクスペッド 予期しないところにある
アンディファインド 定義されてないぞ
トークン 記号とか識別子あたりがおかしくないか?
 
--->test1.php
 
<?php
$user="root";
$pass="";
$host="localhost";
$dbname="school";
$dsn="mysql:host={$host};dbname={$dbname};charset=utf8";
$pdo=new PDO($dsn,$user,$pass);
$sql="SELECT * FROM prefs";//全部取ってくる
$res=$pdo->query($sql);
//結果セットをばらすフェッチは下でやる
?>
<!DOCTYPE html>
<html lang="ja">
<head>
 <meta charset="utf-8">
 <title>練習</title>
 <link rel="stylesheet" href="css/style.css">
 <script src="../jquery-3.4.1.min.js"></script>
</head>
<body>
 <h1>test01</h1>
 <div id="container">
  <form action="" method="post">
   <select name="s1" id="s1">
    <?php while ($row=$res->fetch(PDO::FETCH_ASSOC)): ?>
     <option value="<?php echo $row["p_id"]; ?>">
      <?php echo htmlspecialchars($row["pref"],ENT_QUOTES); ?>
     </option>
    <?php endwhile; ?>
   </select>
  </form>
 </div>
 <script src="js/form.js"></script>
</body>
</html>

今回のエラーは見つけやすかった

$res=$pdo->query($sql);
pdoがpodになっていたので
 


 
 

では非同期通信で、大阪府を選択するとそこの名物を出力したい
 
APIを自前で用意する必要あり
 
最初は名前だけ書き出して、あとあとチェックボックス化する
APIのつくりかた
①DBに取りに行く
②取りに行った結果をジェイソンの形式に変換
③echo
④APIで使えるようになる
 

では新規ファイル
APIは原則として表示されないのでプログラムだけ
 
foods_api.phpで保存
 
またいつもの
 
ダラードスンはダブルクオート、マイエスキューエルコロン、ホストはふにふにかっこダラーホスト、フニフニ閉じ、セミコロン、ディービーネームはふにふにかっこダラーディービーネーム、ふにふに閉じ、セミコロン、チャーセット=utf8、ダブルとじ、セミコロン
 
ここまで

--->foods_api.php
 
<?php
if(empty($_GET["p_id"])){
 exit();//処理を停止
 
 $user="root";
 $pass="";
 $host="localhost";
 $dbname="school";
 $dsn="mysql:host={$host};dbname={$dbname};charset=utf8";
 $pdo = new PDO($dsn,$user,$pass);
?>
PR

コメント

ただいまコメントを受けつけておりません。

プロフィール

HN:
karasumaru
性別:
非公開

P R