私は自分のHTMLにあるタグ入力内の値(またはそのようなもの)を取りたいと思います。タグ入力からtwitterへの値の取得先読みjs
<input name="search" id="search" type="text" class="typeahead"/>
と私はすでに私のスクリプトに、このような何かをしたが、それはうまくいきませんでした:ここで入力タグだ場合のsearch.phpに
var labels = new Bloodhound({datumTokenizer: function(labels) {
return Bloodhound.tokenizers.whitespace(labels); },
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: "http://localhost/codepen/search.php?term="+document.getElementsByTagName("input")[0].value,
filter: function(response) {
return response.labels;
}}});
labels.initialize();
$('#search.typeahead').typeahead({
hint: true,
highlight: true,
minLength: 1
}, {
name: 'labels',
displayKey: function(labels) {
return labels.label;
},
source: labels.ttAdapter()
});
が必要とされている:
<?php
$search = $_GET["term"];
require_once("sparqllib.php");
error_reporting(E_ERROR);
$db = sparql_connect("http://localhost:3030/DOID/sparql");
if(!$db) { print sparql_errno() . ": " . sparql_error(). "\n"; exit; }
sparql_ns("owl","http://www.w3.org/2002/07/owl#");
sparql_ns("rdfs","http://www.w3.org/2000/01/rdf-schema#");
sparql_ns("obo","http://purl.obolibrary.org/obo/");
$sparql = 'SELECT DISTINCT ?class ?label ?description
WHERE { ?class a owl:Class .
OPTIONAL { ?class rdfs:label ?label}
OPTIONAL { ?class obo:IAO_0000115 ?description}
FILTER regex (?label,"'.$search.'", "i")}';
$result = sparql_query($sparql);
if(!$result) { print sparql_errno() . ": " . sparql_error(). "\n"; exit; }
$fields = sparql_field_array($result);
$resultarray = array();
while($row = sparql_fetch_array($result)){
array_push($resultarray,array("label"=>$row['label']));
}
echo json_encode(array('labels'=>$resultarray));
?>
助けていただければ幸いです。あなたは、URLが静的な文字列であることを持っていることを見ることができます https://github.com/twitter/typeahead.js/blob/master/doc/bloodhound.md
:ここtypeheadのドキュメントからの読み取り
なぜdocument.getElementById( 'search')を使用しないのですか。 ?また、生成されたajaxのURLは何ですか? (Google Chromeの[ネットワーク] - [XHR]タブには表示されません)。私の推測では、あなたのコードが実行されるときにURLが再生成されないので、入力値(ページがロードされるとnullになります) –
代わりに 'document.getElementById(" search ")。 – Hackerman
すでにそれも行いましたが、まだ動作していません。まあ、私も同じことを推測していたが、私はどのようにページが読み込まれた後に入力を取るか分からない。 @AntoineGuillien –