nodered-daigakusei
@nodered-daigakusei

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Dashboardで入力した内容を出力したい.

解決したいこと

ui-templateを使用して,出力部からmsg変数を出力したい.

例)
現在大学で,Node-REDを学んでいるものです.
Node-REDを使用して,新規登録フォームを作成していたところ,自分ではこれ以上の解決方法が見つかりません.
皆さんのお力を貸していただけないでしょうか.

発生している問題・エラー

ui-templateにformで入力する欄を作成し,「登録」というボタンを押すと,
msg変数に入力された内容が格納され,その変数を出力したいのですが,ui-templateノードの出力をデバックノードに接続しても,なにも出力されません.
もともと,httpノードを利用すればできていたのですが,他の方法も試したいと思い,プログラムを修正していたら,このような問題が起きてしまいました.どうしてもこの問題を解決したいです.

該当するソースコード

<head>
	<meta charset="UTF-8">
	<title>訓練者 新規登録</title>
</head>

<body>
	<h1>訓練者 新規登録</h1>
	<p>以下の情報を入力してください。</p>

	<form id="registrationForm">

		<p>ユーザID</p>
		<input name="username" value="" required>

		<p>パスワード</p>
		<input name="password" value="" required>

		<p>訓練日数</p>
		<select name="trainingdays" required>
            <option value="">-選択してください-</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
            <option value="7">7</option>
            <option value="8">8</option>
            <option value="9">9</option>
            <option value="10">10</option>
        </select>

		<p>セッション数</p>
		<select name="sessions" required>
            <option value="">-選択してください-</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
            <option value="7">7</option>
            <option value="8">8</option>
            <option value="9">9</option>
            <option value="10">10</option>
        </select>

		<p>ブロックセット数</p>
		<select name="blocksets" required>
            <option value="">-選択してください-</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
            <option value="7">7</option>
            <option value="8">8</option>
            <option value="9">9</option>
            <option value="10">10</option>
        </select>

		<p>訓練方向</p>
		<select name="lrclassification" required>
            <option value="">-選択してください-</option>
            <option value="LEFT">LEFT</option>
            <option value="RIGHT">RIGHT</option>
        </select>

		<p>刺激種類</p>
		<select name="stimcategory" required>
            <option value="">-選択してください-</option>
            <option value="SSSEP">SSSEP</option>
            <option value="SSVEP">SSVEP</option>
        </select>

		<p>刺激周波数(左)</p>
		<select name="l_stimfrequency" required>
            <option value="">-選択してください-</option>
            <option value="10">10 Hz</option>
            <option value="11">11 Hz</option>
            <option value="12">12 Hz</option>
            <option value="13">13 Hz</option>
            <option value="14">14 Hz</option>
            <option value="15">15 Hz</option>
            <option value="16">16 Hz</option>
            <option value="17">17 Hz</option>
            <option value="18">18 Hz</option>
            <option value="19">19 Hz</option>
            <option value="20">20 Hz</option>
            <option value="21">21 Hz</option>
            <option value="22">22 Hz</option>
            <option value="23">23 Hz</option>
            <option value="24">24 Hz</option>
            <option value="25">25 Hz</option>
            <option value="26">26 Hz</option>
            <option value="27">27 Hz</option>
            <option value="28">28 Hz</option>
            <option value="29">29 Hz</option>
            <option value="30">30 Hz</option>
        </select>

		<p>刺激周波数(右)</p>
		<select name="r_stimfrequency" required>
            <option value="">-選択してください-</option>
            <option value="10">10 Hz</option>
            <option value="11">11 Hz</option>
            <option value="12">12 Hz</option>
            <option value="13">13 Hz</option>
            <option value="14">14 Hz</option>
            <option value="15">15 Hz</option>
            <option value="16">16 Hz</option>
            <option value="17">17 Hz</option>
            <option value="18">18 Hz</option>
            <option value="19">19 Hz</option>
            <option value="20">20 Hz</option>
            <option value="21">21 Hz</option>
            <option value="22">22 Hz</option>
            <option value="23">23 Hz</option>
            <option value="24">24 Hz</option>
            <option value="25">25 Hz</option>
            <option value="26">26 Hz</option>
            <option value="27">27 Hz</option>
            <option value="28">28 Hz</option>
            <option value="29">29 Hz</option>
            <option value="30">30 Hz</option>
        </select>

		<br><br>
		<button type="button" onclick="submitForm()">登録</button>
		<input type="reset" value="取消">

	</form>

	<script type="text/javascript">
        function submitForm() {
        var form = document.getElementById("registrationForm");
        var formData = new FormData(form);
        var data = {};
        
        formData.forEach((value, key) => {
        data[key] = value;
        });
        
        // Node-REDにメッセージを送信
        var msg = { payload: data };
        send(msg); // ここでNode-REDにメッセージを送信
        }
	</script>
</body>

0

2Answer

コンソールに出力するのはどうでしょうか?

            // Node-REDにメッセージを送信
            var msg = { payload: data };
+           console.debug(msg);

そういうことではない??

0Like

Comments

  1. コンソールに出力するとはどういうことでしょうか?
    すみません💦.結構初心者で...

    出力されたmsg.payloadを利用して,mysqlノードでMariadbにアクセスしたいって感じです. 
    例えば,「msg.topic="select COUNT(*) from traineetable where username = '" + msg.payload.username + "'";
    return msg;」fundtionノードでこんな感じで処理して,functionノードとmysqlノードを接続して,Mairadbにアクセスしたいって感じです.

    とりあえず,元々HTMLのaction属性を利用して,指定したUPLにデータを送信するのではなくて,ui-templateの出力からmsg.payload等を出力したいって感じです.

  2. 全然違ってましたね。すみません。

    ↓ sqliteの例ですが、mysqlでも基本は変わらないと思うのですが・・・

Your answer might help someone💌