За последние 24 часа нас посетили 25802 программиста и 1726 роботов. Сейчас ищут 834 программиста ...

Автогенерация поля

Тема в разделе "JavaScript и AJAX", создана пользователем sapun, 30 авг 2011.

  1. sapun

    sapun Активный пользователь

    С нами с:
    30 авг 2011
    Сообщения:
    30
    Симпатии:
    0
    Доброго времени суток! Это пример, который я ободрал выполнял следующую логику. Проверял корректность email адреса в базе данных и в случае если он существует подсвечивал зеленым, если нет подсвечивал красным. Вот что у меня получилось после изменения по свои нужды.
    html

    HTML:
    1. <div class="form_item">
    2.   <div class="form_element cf_textbox">
    3.     <label class="cf_label"
    4.      style="width: 150px;">Article</label>
    5.     <input class="cf_inputbox" maxlength="150" size="30" title="" id="email" name="email" type="text"/>
    6.     <input class="cf_inputbox" maxlength="150" size="30" title="" id="pole" name="pole" type="text"/>
    7.     </div>
    8.   <div class="cfclear"> </div>
    9. </div>
    php

    PHP:
    1. <?php
    2. // clean up the JSON message
    3.  
    4. $email = strtolower(trim($_GET['email']));
    5. // check that the email field isn't empty
    6. $response = false;
    7. if ( $email ) {
    8.   // Check the database
    9.   $db =& JFactory::getDBO();
    10.   $query = "SELECT model FROM `#__models` WHERE LOWER(`article`) = ".$db->quote($email).";";
    11.   $db->setQuery($query);
    12.   $response = (bool) $db->loadResult();
    13. }
    14. $response = array('email_ok' => $response );
    15. //send the reply
    16.  
    17. echo json_encode($response);
    18. // stop the from running
    19. $MyForm->stopRunning = true;
    20. ?>
    js

    [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');
    // }
    });
    });
    [/js]
    После выполнения получил следующие вывод, запрос выполняет корректно, так как поле при правильно введенном значении подсвечивается зеленым.
    Осталось два не выясненных вопроса как для меня новичка
    1. В php у меня результат возвращается как булевое значение. Как переделать чтоб возвращался результат из запроса, а не истина или ложь?
    2. Как вернуть полученный результат в инпут "pole"?
    Помогите пожалуйста, а то совсем сбился с толку
     
  2. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    1. ты в 12 строчке своего php сам кастишь полученное значение в bool. Что еще оттуда может возвращаться?
    2. Ну как? $("#pole").val(r.email_ok)
     
  3. sapun

    sapun Активный пользователь

    С нами с:
    30 авг 2011
    Сообщения:
    30
    Симпатии:
    0
    Сделал так как Вы написали, ничего так и не выводит((((
     
  4. alexfer

    alexfer Активный пользователь

    С нами с:
    2 авг 2010
    Сообщения:
    239
    Симпатии:
    0
    Бедная джумла, как же ее несносно насилуют))
     
  5. sapun

    sapun Активный пользователь

    С нами с:
    30 авг 2011
    Сообщения:
    30
    Симпатии:
    0
    Так если позволяют возможности, почему бы их не использовать?
     
  6. alexfer

    alexfer Активный пользователь

    С нами с:
    2 авг 2010
    Сообщения:
    239
    Симпатии:
    0
    Если возможности есть, почему бы и самостоятельно их попытаться освоить?
     
  7. sapun

    sapun Активный пользователь

    С нами с:
    30 авг 2011
    Сообщения:
    30
    Симпатии:
    0
    Я самостоятельно и пытаюсь освоить, я не попросил написать код с нуля, а попросил указать на ошибки. Так что если знаете ответ на мой вопрос подскажите уж пожалуйста)
     
  8. alexfer

    alexfer Активный пользователь

    С нами с:
    2 авг 2010
    Сообщения:
    239
    Симпатии:
    0
    PHP:
    1. <?php
    2. $query = "SELECT model FROM `#__models` WHERE LOWER(`article`) = ".$db->quote($email).";";
    Для меня это вообще загадка. Вы уверены в этом запросе?
    PHP:
    1. <?php
    2. $response = (bool) $db->loadResult();
    Это копипаст или осмысленные действия?
     
  9. sapun

    sapun Активный пользователь

    С нами с:
    30 авг 2011
    Сообщения:
    30
    Симпатии:
    0
    Спасибо всем за помощь разобрался, причина была в
    PHP:
    1.  
    2.      <?php
    3.      $response = (bool) $db->loadResult();
     
  10. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    *Пожимая плечами*
    Ну, удачи.