前提・実現したいこと
PHPとtagifyで複数のタグを選択できるフォームを作成してますが、
tagifyでタグを選択したときに返ってくる値がおかしいです。
##現状
複数のタグを選択
複数のタグを
$tags = $_POST['tags'];
で受け取る
var_dumpで中身を調べると、
"[{"value":"急募"},{"value":"アフターフォロー"}]"
と返ってくる。
返ってくる値で、"value":の部分が邪魔。これを消して、急募、アフターフォローだけ返すようにしたい。
該当のソースコード
タグの選択フォーム
php
1 <div class="mb-3 tag-form"> 2 <input name="tags" class='tag_field' placeholder="+タグの候補を選択してください。(最大5つまで選択可能)" value='<?php if(isset($tags)) echo h($tags) ?>'> 3 </div>
tagifyを用いたjavascript
var input = document.querySelector('input[name="tags"]'), // init Tagify script on the above inputs tagify = new Tagify(input, { whitelist:["急募","アフターフォロー","低価格","要相談"], maxTags: 5, dropdown: { maxItems: 50, // <- mixumum allowed rendered suggestions classname: "tags-look", // <- custom classname for this dropdown, so it could be targeted enabled: 0, // <- show suggestions on focus closeOnSelect: false // <- do not hide the suggestions dropdown once an item has been selected } }); // "remove all tags" button event listener document.querySelector('.tags--removeAllBtn') .addEventListener('click', tagify.removeAllTags.bind(tagify)) // Chainable event listeners tagify.on('add', onAddTag) .on('remove', onRemoveTag) .on('invalid', onInvalidTag); // tag added callback function onAddTag(e){ console.log(e, e.detail); console.log( tagify.DOM.originalInput.value ) tagify.off('add', onAddTag) // exmaple of removing a custom Tagify event } // tag remvoed callback function onRemoveTag(e){ console.log(e, e.detail); } // invalid tag added callback function onInvalidTag(e){ console.log(e, e.detail); }
試したこと
trimなどで配列の文字列削除を試みたが、変わらない。
tagify = new Tagify(input, { whitelist:["急募","アフターフォロー","低価格","要相談"]
この部分が怪しいと思うのですが、tagifyの公式コードになるので現状そのまま。
whitelist:とかいじるとエラーになる。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/04/24 16:37
2021/04/24 16:59 編集
退会済みユーザー
2021/04/24 17:15
2021/04/24 19:37