javascript
  • neo4j
  • frontend
  • structr
  • 2017-05-03 9 views 2 likes 
    2

    structr 2.0.1で結果ページを作成しようとしています。これらのページ内のサイファーの変数としての動的検索入力

    enter image description here

    私は、ユーザー入力の結果を示したいと思います。私の入力フィールドに入力された文字列は、Cypherクエリーを介してNeo4j-DBに転送されます。

    Input = "admin" -> Cypher(Match (n) Where n.name = 'admin' Return n) 
    

    戻り値は、(完全に正常に動作し、全く問題ではない)整数-IDを介しグラフOBJをインスタンス化するために使用されます。

    残念ながら私はそれを魔法のように組み込むことができませんでした。私は多くの "クエリ&データバインディング"、& "HTMLプロパティ" - ページとJavaスクリプトでも試してみましたが、私の前で私のHTML要素から私のサイファークエリ関数に値を転送することができませんでした。

    [input field ("String")--> button fuction()--> cypher (Query) --> function input {graph.addNode(ID)}] 
    

    直接AJAX呼び出しせずにこの問題を解決するためのstructr内の溶液が存在する必要があります。

    多分あなたの誰かが同じ問題を発見したか、これに対する解決策があります。

    この場合、私は非常に助けていただきたいと思います。

    ありがとうございます!

    迷路

    答えて

    2

    リクエストパラメータの値がStructrScriptで利用可能である、というの詳細についてhttps://support.structr.com/article/119を参照してください。

    スクリプトコンテキストには、直接アクセスできる、requestという名前のオブジェクトがあります。このオブジェクトには、Structrに送信するリクエストパラメータがすべて含まれます。だからあなたの場合には、あなたはこのように(あなたがnameに名前を設定している場合)あなたの入力フィールドの値にアクセスすることができます

    ${request.name} 
    

    次の手順は、その仕事をするために必要とされています

    1. <form method="POST" action="/${page.name}">
    2. を作成<input type="submit" value="submit">
    を挿入 <input type="text" name="name" value="${request.name}">
  • を挿入

    フォームを送信すると、上記のようにStructrコンテキストでリクエストパラメータ "name"を使用できます。

    サイファー問合せにその値を挿入するには、あなたがそのような例えば、要求値の周りにクエリを作成する必要があります。

    ${cypher(concat('MATCH (n) WHERE n.name = "', request.name, '" RETURN n'))} 
    

    しかし、そのような設定に非常に気をつけて、上記のコード理由クエリインジェクション攻撃(SQLインジェクション、またはこの場合はむしろCQLインジェクション)に脆弱です。

  • +0

    ありがとうございました!解決策は私のために働いた。 – M4Z3

    関連する問題