PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (1): [1]
Найдено сообщений: 15
Fier
Отправлено: 06 Января, 2013 - 15:42:13 • Тема: Автокомплит • Форум: JavaScript & VBScript
Ответов: 20 Просмотров: 3863
Одного. тоесть что бы когда я вводил denysqiwerytquiwe (и дальше иероглифы) то оно не показывало ничего.
Fier
Отправлено: 06 Января, 2013 - 15:40:47 • Тема: Реализация уведомлений по дате • Форум: Работа с СУБД
Ответов: 0 Просмотров: 539
На днях на работе возник такой вопрос:
Нужно реализовать систему уведомлений. Есть БД с таблицой ЮЗЕРС (Users):
Вася 2012-12-12 2013-12-12
Гриша 2012-06-06 2013-06-06
Инокентий 2012-03-03 2013-03-03
Каждому клиенту допустим нужно платить каждые 3 месяца.
Нужно сделать уведомления - за месяц до проплаты. Тоесть у меня выскакивает сообщение о том что Вася и Гриша должны заплатить до нужной даты. Так же в сообщение что бы была возможность отметить как прочитанное (готовое) и что бы больше не выводилось до следующей проплаты.
Fier
Отправлено: 06 Января, 2013 - 15:30:29 • Тема: Автокомплит • Форум: JavaScript & VBScript
Ответов: 20 Просмотров: 3863
Все. теперь у меня счастье. Решил сделать как знаю:
PHP:
скопировать код в буфер обмена
<?PHP
// PHP5 Implementation - uses MySQLi.
// mysqli('localhost', 'yourUsername', 'yourPassword', 'yourDatabase');
//$db = new mysqli('localhost', 'root' ,'111', 'ovb');
if ( ! $db ) {
// Show error if we cannot connect.
echo 'ERROR: Could not connect to the database.' ;
} else {
// Is there a posted query string?
if ( isset ( $_POST [ 'queryString' ] ) ) { //$queryString = $db->real_escape_string($_POST['queryString']);
$queryString = $_POST [ 'queryString' ] ;
// Is the string length greater than 0?
// Run the query: We use LIKE '$queryString%'
// The percentage sign is a wild-card, in my example of countries it works like this...
// $queryString = 'Uni';
// Returned data = 'United States, United Kindom';
// YOU NEED TO ALTER THE QUERY TO MATCH YOUR DATABASE.
// eg: SELECT yourColumnName FROM yourTable WHERE yourColumnName LIKE '$queryString%' LIMIT 10
//$query = $db->query("SELECT lname, fname, sname, id FROM clients WHERE lname LIKE '$queryString%' LIMIT 10");
$query = mysql_query ( "SELECT lname, fname, sname, id FROM clients WHERE lname LIKE '$queryString %' LIMIT 10" ) ; if ( $query ) {
// While there are results loop through them - fetching an Object (i like PHP5 btw!).
//while ($result = $query ->fetch_object()) {
// Format the results, im using <li> for the list, you can change it.
// The onClick function fills the textbox with the result.
// YOU MUST CHANGE: $result->value to $result->your_colum
//echo '<li onClick="fill(\'' .$result->lname. '' .$result->fname. '' .$result->sname. '' .$result->id. '\');">'.$result->lname. ''.$result->fname.'' .$result->sname.'' .$result->id.'</li>';
echo '<li onClick="fill(\'' . $result [ 'lname' ] . '' . $result [ 'fname' ] . '' . $result [ 'sname' ] . '' . $result [ 'id' ] . '\');">' . $result [ 'lname' ] . '' . $result [ 'fname' ] . '' . $result [ 'sname' ] . '' . $result [ 'id' ] . '</li>' ;
}
} else {
echo 'ERROR: There was a problem with the query.' ;
}
} else {
// Dont do anything.
} // There is a queryString.
} else {
echo 'There should be no direct access to this script!' ;
}
}
?>
Отображается.
Теперь другая трабла.
Допустим когда ввожу Deaklsgfajs - то результатом все равно выводит - DenysMorozov
Тоесть не прекращает поиск. А вот надо сделать так что бы ничего не показывало.
Fier
Отправлено: 06 Января, 2013 - 15:13:29 • Тема: Автокомплит • Форум: JavaScript & VBScript
Ответов: 20 Просмотров: 3863
Решил сделать:
$db = new mysqli('localhost', 'root' ,'111', 'ovb');
mysql_query('set names utf8');
Добавить - Сет НЕЙМС.
Ответ дает на скриншоте.
Fier
Отправлено: 06 Января, 2013 - 15:09:30 • Тема: Автокомплит • Форум: JavaScript & VBScript
Ответов: 20 Просмотров: 3863
CODE (
javascript ):
скопировать код в буфер обмена
<script type = "text/javascript" >
$( document) .ready ( function ( ) {
$( "#button" ) .click ( function ( ) {
var inputString = $( "#inputString" ) .val ( ) ;
alert ( inputString) ;
$.ajax ( {
type : "POST" ,
url: "autocomplete.php" ,
data: {
inputString: inputString
}
} ) ;
} ) ;
} ) ;
</script>
Может правда смешно, но для себя такой вариант нашел того чего отправляет - вывод алертом. Ввожу на русском и все окей.
Проверил еще другим способом. Ввел в БД:
Имя - 123
Фамилию - Вася
Когда захожу на страницу автокомплита, получаю результат:
Имя оно отображает - 123
А вместо фамилии - ?????????
Тоесть база отдает не так как надо.
Но вон и алертом сделал вывод. Все же отправляем в нужной кодировке.
Fier
Отправлено: 06 Января, 2013 - 14:39:21 • Тема: Автокомплит • Форум: JavaScript & VBScript
Ответов: 20 Просмотров: 3863
Пересохранил все файлы уже. Результата 0.
Когда ввожу - Denys, оно мне предлагает варианты.
Когда ввожу - тест - оно мне ничего не предлагает. Тоесть русскими буквами оно даже не может выполнить поиск по базе.
Fier
Отправлено: 06 Января, 2013 - 13:38:46 • Тема: Автокомплит • Форум: JavaScript & VBScript
Ответов: 20 Просмотров: 3863
utf8_general_ci - вся база.
Поменял - <script type="text/javascript" charset="UTF-8">
Fier
Отправлено: 06 Января, 2013 - 13:34:26 • Тема: Автокомплит • Форум: JavaScript & VBScript
Ответов: 20 Просмотров: 3863
Все файлы сохранены в UTF8. И сайт весь на UTF работает. Долго мудрился с пхп, что бы меняло в запросе с ВИНДОВС1251 на УТФ.
Вот теперь с такой траблой столкнулся. Но тут тяжелее, квери слабо знаю то.
Fier
Отправлено: 06 Января, 2013 - 13:20:24 • Тема: Автокомплит • Форум: JavaScript & VBScript
Ответов: 20 Просмотров: 3863
Сделал autocomplete на сайте. Есть одно НО. не подхватывает русские буквы.
Сам код:
CODE (
javascript ):
скопировать код в буфер обмена
<!-- Автодополнение -->
<script type = "text/javascript" src= "js/jquery.js" ></ script>
<script type = "text/javascript" charset= "windows-1251" >
function lookup( inputString) {
if ( inputString.length == 0 ) {
// Hide the suggestion box.
$( '#suggestions' ) .hide ( ) ;
} else {
$.post ( "autocomplete.php" , { queryString: "" + inputString+ "" } , function ( data) {
if ( data.length > 0 ) {
$( '#suggestions' ) .show ( ) ;
$( '#autoSuggestionsList' ) .html ( data) ;
}
} ) ;
}
} // lookup
function fill( thisValue) {
$( '#inputString' ) .val ( thisValue) ;
setTimeout( "$('#suggestions').hide();" , 200) ;
}
</script>
<!-- Автодополнение -->
PHP:
скопировать код в буфер обмена
<?PHP
// PHP5 Implementation - uses MySQLi.
// mysqli('localhost', 'yourUsername', 'yourPassword', 'yourDatabase');
$db = new mysqli( 'localhost' , 'root' , '111' , 'ovb' ) ;
if ( ! $db ) {
// Show error if we cannot connect.
echo 'ERROR: Could not connect to the database.' ;
} else {
// Is there a posted query string?
if ( isset ( $_POST [ 'queryString' ] ) ) { $queryString = $db -> real_escape_string ( $_POST [ 'queryString' ] ) ;
// Is the string length greater than 0?
// Run the query: We use LIKE '$queryString%'
// The percentage sign is a wild-card, in my example of countries it works like this...
// $queryString = 'Uni';
// Returned data = 'United States, United Kindom';
// YOU NEED TO ALTER THE QUERY TO MATCH YOUR DATABASE.
// eg: SELECT yourColumnName FROM yourTable WHERE yourColumnName LIKE '$queryString%' LIMIT 10
$query = $db -> query ( "SELECT lname, fname, sname, id FROM clients WHERE lname LIKE '$queryString %' LIMIT 10" ) ;
if ( $query ) {
// While there are results loop through them - fetching an Object (i like PHP5 btw!).
while ( $result = $query -> fetch_object ( ) ) {
// Format the results, im using <li> for the list, you can change it.
// The onClick function fills the textbox with the result.
// YOU MUST CHANGE: $result->value to $result->your_colum
echo '<li onClick="fill(\'' . $result -> lname . '' . $result -> fname . '' . $result -> sname . '' . $result -> id . '\');">' . $result -> lname . '' . $result -> fname . '' . $result -> sname . '' . $result -> id . '</li>' ;
}
} else {
echo 'ERROR: There was a problem with the query.' ;
}
} else {
// Dont do anything.
} // There is a queryString.
} else {
echo 'There should be no direct access to this script!' ;
}
}
?>
CODE (
html ):
скопировать код в буфер обмена
<p > Введите Фамилию:</ p >
<input type = "text" name = "smember" width = "20" value = "" id = "inputString" onkeyup = "lookup(this.value);" onblur = "fill();" / >
<div class = "suggestionsBox" id = "suggestions" style = "display: none; z-index: 500;" >
<img src = "css_images/upArrow.png" style = "position: relative; top: -12px; left: 50px;" alt = "upArrow" / >
<div class = "suggestionList" id = "autoSuggestionsList" >
</ div >
</ div >
Помогите разобраться куда пихать. Сижу мучаю уже iconv около 2-ух часов.
Fier
Отправлено: 22 Декабря, 2012 - 11:14:08 • Тема: AJAX + PHP + MYSQL • Форум: JavaScript & VBScript
Ответов: 5 Просмотров: 2307
Вывод городов идет. Я получаю список. Но когда я передаю данные на сервер, он их не получает. Тоесть переменная = 0.
Алертом я вывожу. Область показывает а город нет.
Fier
Отправлено: 18 Декабря, 2012 - 19:07:21 • Тема: AJAX + PHP + MYSQL • Форум: JavaScript & VBScript
Ответов: 5 Просмотров: 2307
Вывожу через алерт полученные данные. Область выводит, точнее записывает айдишник, нормально вроде. А вот город почему то не запоминает и просто пропуск (пустое поле) выводится в алерт.
Сам список городов он подтягивает и запоняет в зависимости от того какая область выбрана.
Fier
Отправлено: 10 Декабря, 2012 - 13:32:39 • Тема: AJAX + PHP + MYSQL • Форум: JavaScript & VBScript
Ответов: 5 Просмотров: 2307
Проблема: то что при выборе области, область заноситься в переменную, а город почему-то не выберается.
При помощи аджакса выводиться алерт, область заполняется, город пустой полность. Укажите где ошибка, либо подскажите где копать.
Сижу вторые сутки. Делал по примеру, но ввел свои корективы.
Сама форма:
CODE (
html ):
скопировать код в буфер обмена
<td >
Регион:<font color = "red" > *</ font >
</ td >
<td >
<div style = "display: none" id = "loading_region" ><img alt = "" src = "/img/ajax_loader.gif" / > Загрузка...</ div >
<div >
<select name = "regionid" id = "region" onchange = "getList('city', 'region')" style = "width:300px;" >
<?php
$sql = mysql_query( "SELECT id,name FROM region" ) ;
$row = mysql_fetch_array( $sql) ;
do {
printf( '
<option value="%s"> %s</ option >
',$row['id'],$row['name']);}
while ($row = $row = mysql_fetch_array($sql));
?>
</ select >
</ div >
</ td >
</ tr >
<tr >
<td >
Город:<font color = "red" > *</ font >
</ td >
<td >
<div style = "display: none" id = "loading_city" ><img alt = "" src = "/img/ajax_loader.gif" / > Загрузка...</ div >
<div >
<select name = "city_id" id = "city" style = "width:300px;" >
<option > -Выберите город-</ option >
</ select >
</ div >
Прикрутил я аджакс:
Код:
CODE (
javascript ):
скопировать код в буфер обмена
<script type = "text/javascript" >
$( document) .ready ( function ( ) {
$( "#button" ) .click ( function ( ) {
var region = $( "#region" ) .val ( ) ;
var city = $( "#city" ) .val ( ) ;
alert ( region + "-" + city) ;
$.ajax ( {
* * * * * type : "POST" ,
* * * * * url: "save_clients.php" ,
* * * * * data: {
* * * * * * * region: region,
* * * * * * * city: city,
* * * * }
} ) ;
} ) ;
} ) ;
</script>
Повесил его на кнопку. Вот только слабый все же прогресс. Алертом оно выводит все равно только область. Почему-то оно не подтягивает города.
Код:
PHP:
скопировать код в буфер обмена
<?PHP
$id = ( int) $_POST [ 'id' ] ; // id объекта (страна или регион)
$type = $_POST [ 'type' ] ; // тип списка, который нужно получить (города или регионы)
if ( $type == 'city' ) {
// выбираем города в данном регионе
FROM city
WHERE region_id = ' . $id . '
ORDER BY name' ) ;
echo "out.options[out.options.length] = new Option('-Выберите город-','none');\n " ;
echo "out.options[out.options.length] = new Option('" . $city [ 'name' ] . "','" . $city [ 'city_id' ] . "');\n " ;
}
}
else {
echo "out.options[out.options.length] = new Option('нет городов','none');\n " ;
}
}
/* if ($type == 'region') {
// выбираем регионы в данной стране
$result = mysql_query('SELECT *
FROM region
WHERE country_id = '.$id.'
ORDER BY name');
if (!empty($result)) {
echo "out.options[out.options.length] = new Option('выберите регион...','none');\n";
while ($region = mysql_fetch_array($result)) {
echo "out.options[out.options.length] = new Option('".$region['name']."','".$region['region_id']."');\n";
}
}
else {
echo "out.options[out.options.length] = new Option('нет регионов','none');\n";
}
} */
?>
Вот city.php на который посылается аджакс при обновлении городов:
Код:
CODE (
javascript ):
скопировать код в буфер обмена
<!-- Города -->
<script type = "text/javascript" src= "js/jquery.js" ></ script>
<script type = "text/javascript" >
function getList( type , obj) {
$( '#loading_' + type ) .show ( ) ;
$.post ( '/blocks/city.php' , { type : type , id: $( '#' + obj) .val ( ) } , onAjaxSuccess) ;
function onAjaxSuccess( data) {
out = document.getElementById ( type ) ;
for ( var i = out.length - 1 ; i > = 0 ; i-- ) {
out.options [ i] = null ;
}
eval ( data) ;
$( '#loading_' + type ) .hide ( ) ;
}
}
</script>
<!-- Города -->
Короче курю дальше. Не могу найти в чем проблема, почему СЕЛЕКТ не запоминает город.
Страниц (1): [1]
Powered by ExBB FM 1.0 RC1. InvisionExBB