Bonjour,
J'ai fais un barre de recherche et j'essaie de mettre en place un auto-completion mais je sais pas pourquoi sa marche pas j'ai bien le retour json dans la console de Firebug sous la forme[{"nom":"la beaut\u00e9"},{"nom":"le paris"},{"nom":"le vertige"}]
mais l'auto-complétion ne fonctionne pas .
logement.php
function logement(){
$bdd = db_connect();
if(isset($_GET['query']) && !empty($_GET['query'])){
$sql = "SELECT nom FROM logements WHERE nom LIKE :nom";
$req = $bdd->prepare($sql);
$req->bindValue('nom', (isset($_GET['query']) ? '%' .$_GET['query'] . '%' : "" ), PDO::PARAM_STR);
$req->execute();
$result = $req->fetchAll(PDO::FETCH_OBJ);
$req->closeCursor();
echo json_encode($result);
}
}
logement();
custom.js
$(document).ready(function() {
var data = new Bloodhound({
datumTokenizer: function (datum) {
return Bloodhound.tokenizers.whitespace(datum.nom);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url : "logement.php?query=%QUERY",
wildcard : "%QUERY"
},
});
data.initialize();
$('#search').typeahead({
hint: false,
highlight: true,
minLength: 1
},
{
name: "data",
displayKey: "nom",
source: data.ttAdapter(),
limit:5,
});
});
je voudrais faire une auto-completion du style https://twitter.github.io/typeahead.js/examples/
salut merci pour ta réponse mais ou je dois mettre header json puisque le je suis un peu perdu
header('Content-type: application/ json; charset=UTF-8');
me sort une erreur ce qui normal puisque je renvois 2 fois le content-type
Bonjour, ton header doit se trouver en début de page. ton code js à l'air correct a première vue, cela viendrais donc de ton php. A bientot
Tout d'abord charset=UTF-8 n'est pas obligatoire, ensuite il n'y a pas d'espace après le / c'est application/json et dernièrement il faut mettre une majuscule à Type : Content-Type
Quelle est l'erreur ?
je savais pas qu'ilvaut une majuscule Content-Type (bon à savoir) et pour l'erreur
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\site\admin\includes_adm\functions_adm_htm.php:179) in C:\wamp\www\site\admin\test.php on line 9
EDIT je viens de me rendre compte que il me parle de la ligne 179 mais a la ligne 179 j'ai juste
<?php if (isset($_SESSION['login'])) { //ligne 179
echo $_SESSION['login'];
}
elseif (isset($_COOKIE['login'])) {
echo $_COOKIE['login'];
}
?>
Ca veut dire que tu as affiché du texte avant d'utiliser la fonction header, peux-tu montrer ton code ?
J'ai épuré un par exemple j'ai enlevé des liens du coup la ligne 179 se trouve à la ligne 97.
functions_adm_htm.php
<?php
function htm_admin_header($messageFlash, $titlepage)
{
global $language_adm;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-FR" lang="fr-FR">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<title><?php echo $language_adm['lien_haut_title']; ?></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<script type="text/javascript" src="assets/js/jquery-1.12.3.js"></script>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
<!-- BOOTSTRAP SCRIPTS -->
<!-- <script type="text/javascript" src="assets/js/npm.js"></script> -->
<script type="text/javascript" src="assets/js/bootstrap.js"></script>
<script type="text/javascript" src="assets/js/typeahead.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.2/js/bootstrap.min.js" ></script>
<!-- CUSTOM SCRIPTS -->
<script type="text/javascript" src="assets/js/custom.js"></script>
<script type="text/javascript" src="assets/js/functions_js.js"></script>
<link href="assets/css/bootstrap_adm.css" type="text/css" rel="stylesheet" />
<link href="assets/css/style_adm.css" type="text/css" rel="stylesheet" />
</head>
<body>
<div id="wrapper">
<nav class="navbar navbar-default navbar-cls-top " role="navigation" style="margin-bottom: 0">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".sidebar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.php"><?php echo $language_adm['nom_site']; ?>
</a>
</div>
<div class="notifications-wrapper">
<ul class="dropdown-menu dropdown-tasks">
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<i class="fa fa-user-plus"></i> <i class="fa fa-caret-down"></i>
</a>
<ul class="dropdown-menu dropdown-user">
<li><a href="#"><i class="fa fa-user-plus"></i> My Profile</a>
</li>
<li class="divider"></li>
<li><a href="./logout.php"><i class="fa fa-sign-out"></i> Logout</a>
</li>
</ul>
</li>
<li class="dropdown">
<a class="dropdown-toggle" target="_blank" href="../index.php">
<i class="fa fa-globe"></i><i class="fa fa-sign-in"></i>
</a>
</li>
</ul>
</div>
</nav>
<!-- /. NAV TOP -->
<nav class="navbar-default navbar-side" role="navigation">
<div class="sidebar-collapse">
<ul class="nav" id="main-menu">
<li>
<div class="user-img-div">
<img src="assets/img/user.jpg" class="img-circle" />
</div>
</li>
<li>
<a href="#"> <strong>
<?php if (isset($_SESSION['login'])) {
echo $_SESSION['login'];
}
elseif (isset($_COOKIE['login'])) {
echo $_COOKIE['login'];
}
?> </strong></a>
</li>
<li>
<a href="categorie.php"><i class="fa fa-folder-o"></i><?php echo $language_adm['categorie']; ?></a>
</li>
<li>
<a href="forms.html"><i class="fa fa-code "></i>Paramêtre<span class="fa arrow"></span></a>
<ul class="nav nav-second-level">
<li>
<a href="seo_url.php"><i class="fa fa-cogs "></i> Seo et Url</a>
</li>
<li>
<a href="pack.php"><i class="fa fa-sitemap "></i>Pack</a>
</li>
</ul>
</li>
</ul>
</div>
</nav>
<!--haut de page coloone droite -->
<div id="page-wrapper" class="page-wrapper-cls">
<div id="page-inner"> <?php echo $messageFlash?>
<div class="row">
<div class="col-md-12">
<h1 class="page-head-line"><?php echo htmlspecialchars($titlepage) ?></h1>
</div>
</div>
<div class="col-md-12">
<ul class="breadcrumb">
<li><a href="index.php">Accueil</a>
</li>
<li><a href="javascript:window.history.go(-1)">Retour</a></li>
</ul>
</div>
<?php
}
test.php
<?php
session_start();
require_once('includes_adm/all_functions_adm.php');
$message = "";
$title = "test";
htm_admin_header($message, $title);
htm_form();
htm_form.php
<?php
function htm_form($result){
?>
<form method="POST" action="<?php $_SERVER['PHP_SELF'] ?>">
<div class="tab-content col-md-10 well">
<div class="tab-pane active" id="tab_a">
<h4>Information sur le menu</h4>
<div class="col-lg-3">
<select name="resultat">
<?php foreach ($resultas $results) : ?>
<option><?php echo htmlspecialchars($results['nom']) ?></option>
<?php endforeach ; ?>
</select>
</div>
<div class="input-group input-group-lg" id="searchTop">
<input id="search" class="form-control" type="text" name="search" aria-describedby="sizing-addon1" placeholder="Rechercher Titre " autocomplete="off">
<span class="input-group-addon pushsearch" id="sizing-addon1">
<i class="glyphicon glyphicon-search "></i>
</span>
</div>
<div class="col-lg-12">
<label for="nom">Nom du menu</label>
<input id="nom" type="text" class="form-control" name="nom">
<label for="description">Description</label>
<textarea id="description" name="description" cols="0" rows="15"></textarea>
</div>
<?php
}
je me me suis planté j'aiposter la mauvaise page logement.php c'est juste un page qui fait appel la requête sql que je passe a test.php
htm_form.php
<?php
function htm_form(){
?>
<form method="POST" action="<?php $_SERVER['PHP_SELF'] ?>">
<div class="tab-content col-md-10 well">
<div class="tab-pane active" id="tab_a">
<h4>Information sur le menu</h4>
<div class="input-group input-group-lg" id="searchTop">
<input id="search" class="form-control" type="text" name="search" aria-describedby="sizing-addon1" placeholder="Rechercher Titre " autocomplete="off">
<span class="input-group-addon pushsearch" id="sizing-addon1">
<i class="glyphicon glyphicon-search "></i>
</span>
</div>
<div class="input-group input-group-lg" id="searchTop">
<input id="search" class="form-control" type="text" name="search" aria-describedby="sizing-addon1" placeholder="Rechercher Titre " autocomplete="off">
<span class="input-group-addon pushsearch" id="sizing-addon1">
<i class="glyphicon glyphicon-search "></i>
</span>
</div>
<div class="col-lg-12">
<label for="nom">Nom du menu</label>
<input id="nom" type="text" class="form-control" name="nom">
<label for="description">Description</label>
<textarea id="description" name="description" cols="0" rows="15"></textarea>
</div>
<?php
}
test.php
<?php
session_start();
require_once('includes_adm/all_functions_adm.php');
$message = "";
$title = "test";
htm_admin_header($message, $title);
header('Content-Type: application/json');
logement();
htm_form();
dans test.php tu n'as pas besoin d'appeler ni logement ni le header, ca il faut juste les mettre dans le fichier appelé en ajax
ok mais du coup tu me parlais du header json, je vois pas ou je peux déclarer à par de la balise meta.
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
Le header json c'est pour le fichier appelé en json ;) la page html affichée reste telle qu'elle
je sais pas je pense avoir une ereur de conception puisque j'ai mis le header json dans logement.php mais ca marche pas
enfaite non tu as bien raison c'est bien ca j'avais juste fais une erreur de frappe un grand merci a toi