js
window.addEvent('domready', function() {
var url = 'index.php?option=com_chronoforms&chronoform=ttt&event=ajaxEvent&format=raw';
var article = $('article');
article.addEvent('blur', function() {
var value = article.value.trim();
var jSonRequest = new Request.JSON({
url : url,
method : 'get',
data : {article : article.value},
onComplete : function(r) {
if (r.email_ok) {
article.setStyle('background-color','green');
}
else {
article.setStyle('background-color','red');
}
}
}).send();
});
});
php
<?php
// clean up the JSON message
$article = strtolower(trim($_GET['article']));
// check that the article field isn't empty
//$response;
if ( $article ) {
// Check the database
$db =& JFactory::getDBO();
$query = "SELECT model FROM `#__t_models` WHERE LOWER(`article`) = ".$db->quote($article).";";
$db->setQuery($query);
$response = $db->loadResult();
}
$response = array('article_ok' => $response );
//send the reply
echo json_encode($response);
// stop the from running
$MyForm->stopRunning = true;
die;
?>
Спустя 2 минуты, 23 секунды (29.08.2011 - 22:42) Игорь_Vasinsky написал(а):
раз новичёк - то напрасно на классы сразу попёр.
Есть ошибки, нотисы, варнинги? что в и тоге происходит, не происходит... кофейная гуща закончилась.
Есть ошибки, нотисы, варнинги? что в и тоге происходит, не происходит... кофейная гуща закончилась.
Спустя 4 минуты, 26 секунд (29.08.2011 - 22:47) sapun написал(а):
Не пишет вроде ничего, но вроде и не выдает. Мне кажется ошибка в синтаксисе, может глянуть если разбираетесь?
Спустя 11 минут, 51 секунда (29.08.2011 - 22:58) Игорь_Vasinsky написал(а):
$query = "SELECT model FROM `#__t_models` WHERE LOWER(`article`) = ".$db->quote($article).";";
и вообще допиши так
Update:
и вообще допиши так
$query = "SELECT model FROM `#__t_models` WHERE LOWER(`article`) = ".$db->quote($article) or die(mysql_error());- если есть глюк и есть метод у класса который его выведет - то получишь ошибку если запрос кривоват.
Update:
$query = "SELECT * FROM `#__t_models` WHERE LOWER(`article`) = ".$db->quote($article) or die(mysql_error());
Спустя 12 минут, 50 секунд (29.08.2011 - 23:11) sapun написал(а):
C запросом проблемы нет, так как пробывал выводить с перезагрузкой страницы, выводит данные без проблем
Спустя 4 минуты, 29 секунд (29.08.2011 - 23:16) Игорь_Vasinsky написал(а):
закоментируй
и пропиши в action формы
а отладчик JS ругается?
на Хроме F12
в мозилле FireBug
var url = 'index.php?option=com_chronoforms&chronoform=ttt&event=ajaxEvent&format=raw';
и пропиши в action формы
а отладчик JS ругается?
на Хроме F12
в мозилле FireBug
Спустя 7 минут, 53 секунды (29.08.2011 - 23:24) sapun написал(а):
Я этот код переделывал с примера, линк тоже правильный.
Возникает следующих два вопроса
1. Надо ли мне это
2. Как правильно вывести и где в коде полученную переменную из запроса?
Возникает следующих два вопроса
1. Надо ли мне это
if (r.email_ok) {
article.setStyle('background-color','green');
}
else {
article.setStyle('background-color','red');
}
2. Как правильно вывести и где в коде полученную переменную из запроса?
Спустя 10 минут, 39 секунд (29.08.2011 - 23:34) Игорь_Vasinsky написал(а):
переменная article
а всё остальное это подсветка
а вывод в инпут
JQuery подключён?
если да то
а всё остальное это подсветка
а вывод в инпут
JQuery подключён?
если да то
$("#id_input").val(article);
Спустя 4 минуты, 2 секунды (29.08.2011 - 23:38) Игорь_Vasinsky написал(а):
onComplete : function()
{
$("#id_input").val(article);
}
Спустя 11 минут, 53 секунды (29.08.2011 - 23:50) sapun написал(а):
Подсвечивает красным( и переменную не выводит(
Спустя 2 минуты, 53 секунды (29.08.2011 - 23:53) Игорь_Vasinsky написал(а):
#id_input - ID твоего инпута
Спустя 4 минуты (29.08.2011 - 23:57) Игорь_Vasinsky написал(а):
var article = $('article');
это ты как тег указал, нужно либо класс, либо ID
.article
#article
Спустя 8 часов, 46 минут, 5 секунд (30.08.2011 - 08:43) sapun написал(а):
Вообщем к чему пришел. Это пример, который я ободрал выполнял следующую логику. Проверял корректность email адреса в базе данных и в случае если он существует подсвечивал зеленым, если нет подсвечивал красным. Вот что у меня получилось после изменения по свои нужды.
html
php
js
После выполнения получил следующие вывод, запрос выполняет корректно, так как поле при правильно введенном значении подсвечивается зеленым.
Осталось два не выясненных вопроса как для меня новичка
1. В php у меня результат возвращается как булевое значение. Как переделать чтоб возвращался результат из запроса, а не истина или ложь?
2. Как вернуть полученный результат в инпут "pole"?
Помогите пожалуйста, а то совсем сбился с толку
html
<div class="form_item">
<div class="form_element cf_textbox">
<label class="cf_label"
style="width: 150px;">Article</label>
<input class="cf_inputbox" maxlength="150" size="30" title="" id="email" name="email" type="text"/>
<input class="cf_inputbox" maxlength="150" size="30" title="" id="pole" name="pole" type="text"/>
</div>
<div class="cfclear"> </div>
</div>
php
<?php
// clean up the JSON message
$email = strtolower(trim($_GET['email']));
// check that the email field isn't empty
$response = false;
if ( $email ) {
// Check the database
$db =& JFactory::getDBO();
$query = "SELECT model FROM `#__models` WHERE LOWER(`article`) = ".$db->quote($email).";";
$db->setQuery($query);
$response = (bool) $db->loadResult();
}
$response = array('email_ok' => $response );
//send the reply
echo json_encode($response);
// stop the from running
$MyForm->stopRunning = true;
die;
?>
js
window.addEvent('domready', function() {
// set the url to send the request to
var url = 'index.php?option=com_chronoforms&chronoform=ttt&event=ajaxEvent&format=raw';
var email = $('email');
email.addEvent('blur', function() {
// clear any background color from the input
//email.setStyle('background-color', 'white');
// check that the email address is valid
//regex = /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i;
var value = email.value.trim();
//if (value.length > 6 && regex.test(value)) {
//if (value.length > 3 ) {
// if all is well send the JSON request
var jSonRequest = new Request.JSON({
url : url,
method : 'get',
data : {email : email.value},
onComplete : function(r) {
// check the result and set the background
// color
//console.log®;
if (r.email_ok) {
email.setStyle('background-color','green');
}
//else {
// email.setStyle('background-color','red');
//}
}
}).send();
// } else {
// if this isn't a valid email set background color
// red
// email.setStyle('background-color', 'red');
// }
});
});
После выполнения получил следующие вывод, запрос выполняет корректно, так как поле при правильно введенном значении подсвечивается зеленым.
Осталось два не выясненных вопроса как для меня новичка
1. В php у меня результат возвращается как булевое значение. Как переделать чтоб возвращался результат из запроса, а не истина или ложь?
2. Как вернуть полученный результат в инпут "pole"?
Помогите пожалуйста, а то совсем сбился с толку
Спустя 11 часов, 51 минута, 38 секунд (30.08.2011 - 20:35) sapun написал(а):
Никто не может подсказать?(((
Спустя 41 минута, 1 секунда (30.08.2011 - 21:16) Игорь_Vasinsky написал(а):
ты запутал.... у тя JS не работает или PHP?
Давай по пунктам 1,2,3 и т.д.
Давай по пунктам 1,2,3 и т.д.
Спустя 24 минуты, 51 секунда (30.08.2011 - 21:41) sapun написал(а):
Код работает, но делает не то что мне надо. Он подсвечивает зеленым инпут в случае нахождения значения в базе, а мне надо чтоб в инпут='pole'попадало значения выбранное из базы. Например, ввел фамилию в первый инпут, оно вернуло должность во второй инпут
Спустя 23 минуты (30.08.2011 - 22:04) sapun написал(а):
Я так понимаю, что проблема с выводом. Вывожу так
Такие выводы сделал потому что фаербаг дает ответ {"email_ok":"K7704W"}. Я так понимаю проблема с джава скриптом
window.addEvent('domready', function() {
var url = 'index.php?option=com_chronoforms&chronoform=ttt&event=ajaxEvent&format=raw';
var email = $('email');
email.addEvent('blur', function() {
var value = email.value.trim();
var jSonRequest = new Request.JSON({
url : url,
method : 'get',
data : {email : email.value},
onComplete : function(r) {
$("#pole").val(r.email_ok);
}
}).send();
});
});
Такие выводы сделал потому что фаербаг дает ответ {"email_ok":"K7704W"}. Я так понимаю проблема с джава скриптом