2012-03-23 5 views
0

Я пытаюсь заставить этот живой поиск работать правильно.Эхо-значение во вводе, после того, как значение напечатано

Как я себе это труд, пользователь посещает форму, входит в значение, как 94302 и выводимый коробка с «Санта-Клара», например, с value="" равным значению поля базы данных fanDetLocID ,

HTML-формы

<form method="post" id="FanDetail"> 
<input id="zip" name="zipcode" value="US Zipcode" onFocus="clearText(this)" /> 
</form> 

<div class="success" style="display: none;">Saved!</div> 

JQuery, который вызывается при загрузке страницы:

$(document).ready(function(){ 
    $("#zip").keyup(function() { 
     // do magic 
     $.ajax({ 
     type: "POST", 
     url: "../php/getFanLoc.php", 
     data: "zip="+ zip, 
     success: function(){ 
      $('#zip').function(){$('div.success').fadeIn();}; 
      } 
     }); 
    return false; 
    }); 
}); 

РНР файл: getFanLoc.php который вызывается JQuery методом .keyup() при вводе 5-значного почтового индекса

<?php 
///////////////////////////////////// 
require_once('../cfg/dbi.php'); ///// 
///////////////////////////////////// 

############### SANITIZE ############### ////////////// 
/////////////////////////////////////////////////////// 
$zip = htmlspecialchars(trim($_POST['zipcode'])); /// 
$zip = mysql_real_escape_string($_POST['zipcode']); /// 
/////////////////////////////////////////////////////// 

try{ 
    $dbh = new PDO("mysql:host=$host;dbname=$dbname",$user,$pass); 
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    ## INSERT CLEAN DATA INTO TABLE… 
    $sth = $dbh->prepare(
    'SELECT fanDetLocID, fanDetLocCity, fanDetLocState FROM fanDetailLocation WHERE fanDetLocZip = ?'); 
    $sth->bindParam(1, $zip); 
    $sth->execute(); 
    if ($res = $sth->fetch(PDO::FETCH_ASSOC)) { 
     printf('%s, %s', 
      htmlspecialchars($res['fanDetLocCity'], ENT_QUOTES, 'UTF-8'), 
      htmlspecialchars($res['fanDetLocState'], ENT_QUOTES, 'UTF-8') 
     ); 
    } 
} 





catch(PDOException $e){ 
    file_put_contents('../../PDODBConnectionErrors.txt', $e->getMessage(), FILE_APPEND); 
} 



?> 

Текущая проблема: я печатаю 5-значный почтовый индекс и ничего не отображается, мне нужна помощь в получении этого значения при вводе в 5-значный почтовый индекс.

Я проверил SQL-запрос, и это работает нормально. Он должен вывести в поле ввода значения fanDetLocCity, fanDetLocCity, например, Санта-Барбару, Калифорния.

+1

«исправить мой код» вопрос не хорошо для Q & A формата –

+0

Я прошу возможные способы вывода этого, я не прошу вас писать свой код. Я здесь, чтобы учиться, этот тип ответа выше не помогает. – CodeTalk

+0

Этот ответ не предназначен для «полезной». Это просто объяснение, что не так с вашим вопросом. Вы должны учиться с помощью некоторых классов, книг или учебников. Пока этот сайт задает некоторые вопросы. Есть один? –

ответ

0

Хорошо, ваша основная проблема в том, что вы пытаетесь сделать echo a PDOStatement. Вам нужно выполнить хотя бы одну операцию выборки и получить значения из набора результатов.

Во-вторых, вы должны действительно использовать связанные параметры вместо того, чтобы вводить значения в строку SQL.

В-третьих, я не вижу смысла в создании базы данных для выполнения тривиальной конкатенации строк. Попробуйте это вместо

$sth = $dbh->prepare(
    'SELECT fanDetLocID, fanDetLocCity, fanDetLocState FROM fanDetailLocation WHERE fanDetLocZip = ?'); 
$sth->bindParam(1, $zip); 
$sth->execute(); 

if ($res = $sth->fetch(PDO::FETCH_ASSOC)) { 
    printf('%s, %s', 
     htmlspecialchars($res['fanDetLocCity'], ENT_QUOTES, 'UTF-8'), 
     htmlspecialchars($res['fanDetLocState'], ENT_QUOTES, 'UTF-8') 
    ); 
} 
+0

Отличные баллы! Является избыточным иметь «htmlspecialchars» ($ res ['fanDetLocCity'], ENT_QUOTES, 'UTF-8'), htmlspecialchars ($ res ['fanDetLocState'], ENT_QUOTES, 'UTF-8') 'снова, поскольку я использовал это раньше подготовка запроса? Это ничего не показывает. Пожалуйста, ознакомьтесь с обновленным кодом, я бы очень признателен. – CodeTalk

+0

Значение 'htmlspecialchars ($ res ['fanDetLocCity'], $ res ['fanDetLocState']' необходимо установить на значение ' CodeTalk

+0

Возможно ошибка в самом jquery, эта строка внутри данных '.ajax():« zip = »+ zip,' может быть ошибочной, поскольку не отправляются данные по URL-адресу страницы. Может ли это быть проблемой? – CodeTalk

Смежные вопросы