AS-B
@AS-B

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

「type="number"」などで入力した内容を渡したいです。

解決したいこと

表題の件ですが、やりたい事としてはIDを「type="number"」などで指定し、
そのIDの内容をデータベースから引っ張ってきてテキストボックスに表示させるというものです。
それをwordpressで試みています。

<form action="">
<input style="width: 250px;" type="number" name="id" id="id" placeholder="ID" />
<input type="text" id="AAA" placeholder="AAA" />
</form>

<?php
global $wpdb;
$object = $wpdb->get_results("SELECT * FROM $wpdb->test", OBJECT_K);
$ob_id = 1; //ここをどうしていいかわかりません。とりあえず「1」にしておくとID1のBBBの値が入ります。
$BBB_value =$object[$ob_id]->BBB;
?>

<script>
function inputChange(){
document.getElementById( "AAA" ).value = "<?php echo $BBB_value ?>" ;
}

let id = document.getElementById('id');
id.addEventListener('input', inputChange);
</script>

自分で試したこと

変数を「 = $_POST['id'];」にしてみたり、「type="hidden"」を
使おうとしてみたりしましたが、皆目見当がつきませんでした。
調べる中でPHPはサーバー処理(初め?)とありましたので、
後からjavascriptでどうこうしようとしてもNGなのでしょうか?
あとはそもそもPOSTじゃない気もしていますがサッパリです・・・
イメージとしてはID入力をjavascriptで拾って、PHPに渡して
再度javascriptで表示させるという感じでしょうか・・・?

恐れ入りますご教授のほどよろしくお願い申し上げます。

0

2Answer

「type="number"」などで指定し、
そのIDの内容をデータベースから引っ張って

これはどういうことでしょうか?

0Like

Comments

  1. @AS-B

    Questioner

    説明が下手で申し訳ありません。
    テーブル:test
    ID:BBB
    1:あ
    2:い
    3:う
    とあったとき、「type="number"」の数字入力を1にすれば「あ」2にすれば「い」と、
    テキストボックスに読み込みたいという意図なのですが、説明が適切か判断できず恐れ入ります・・・

そのPHPはWebページをサーバが返す際にしか介入できないので,
JavaScriptで動的に何かしながらデータを取得したい場合,JS側でfetchするような仕組みを作って,バックエンド側にも別にデータを返せるAPIが必要かと思われます.

特にお約束な実装方法があるわけではないので詳細は各記事に譲りますが,あまりサーバに負荷をかけないように配慮が必要です.

内容を変えるくらいだったら同じページにPOSTするとかでもいい気はしますが…

0Like

Comments

  1. @AS-B

    Questioner

    ご教授いただき誠にありがとうございます。
    JSのfetchについて、いただいた物とプラスα調べてみましたが、私のレベルではほとんど理解する事が出来ませんでした。
    同じページにPOSTする方法も自分なりにテストしてみましたが、5つほどエラーが出ており厳しいようです。
    折角ご助力いただいたのに、いずれも私の力不足で申し訳ありません。

Your answer might help someone💌