jeudi 8 janvier 2015

How to i get a specific value from a json encoded array?


Vote count:

0




Here is my JavaScript and my PHP for a dynamic ajax search. I am trying to get data from the database and display it in my DOM as a string.


javascript



var searchBox = document.getElementById("searchBox");
var searchButton = document.getElementById("searchButton");
var search = getXmlHttpRequestObject();

searchBox.addEventListener("keyup", ajaxSearch);

function getXmlHttpRequestObject(){
if(window.XMLHttpRequest){
return new XMLHttpRequest();
}
else if (window.ActiveXObject){
return new ActiveXObject("Microsoft.XMLHTTP");
}
else{
alert("Your browser does not support our dynamic search");
}
}

function ajaxSearch(){
var str = escape(document.getElementById('searchBox').value);
search.open("GET", '../searchSuggest.php?search=' + str, true);
search.send(null);
delay(displaySuggestions);
}

function displaySuggestions(){
var ss = document.getElementById("searchSuggestion");
ss.innerHTML = '';
string = search.responseText;
ss.innerHTML = string;
}


function delay(functionName){
setTimeout(functionName, 100);
}

function setSearch(x){
document.getElementById("searchBox").value = x;
document.getElementById("searchSuggestion").innerHTML = "";
}

searchBox.addEventListener('click', ajaxSearch);
window.addEventListener('click', function(){
document.getElementById('searchSuggestion').innerHTML = '';
});


php



<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "Products";

try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$searchValue = $_GET['search'];

if(isset($searchValue) && $searchValue != ''){
$search = addslashes($searchValue);
$statement = $conn->prepare("SELECT Name FROM Product WHERE Name LIKE('%" . $search . "%') ORDER BY
CASE WHEN Name like '" . $search . " %' THEN 0
WHEN Name like '" . $search . "%' THEN 1
WHEN Name like '% " . $search . "%' THEN 2
ELSE 3
END, Name");
$statement->execute();

//while ($row = $statement->fetch(PDO::FETCH_OBJ)) {
// echo "<div class='searchItem' onclick=javascript:setSearch(this.innerHTML)>" . $row->Name . "</div>";
//}

$result = $statement->fetchAll(PDO::FETCH_ASSOC);
$json = json_encode($result);
echo $json;

}
}
catch(PDOException $e)
{
echo "Error: " . $e->getMessage();
}

$conn = null;
?>


What i want to know i how to get specific values from my response.



[{"Name":"iMac"},{"Name":"iPad 2"},{"Name":"iPhone 5"},{"Name":"iPhone 6"},{"Name":"iPod Touch"},{"Name":"iWatch"}]


For my search to work effectively i need it to display just the string of the product name and not the whole object.



asked 29 secs ago







How to i get a specific value from a json encoded array?

Aucun commentaire:

Enregistrer un commentaire