Jump to content

Simon

User
  • Posts

    115
  • Joined

  • Last visited

Posts posted by Simon

  1. День добрый,

    Пытаюсь с помощью $.ajax взять время с другого сайта.

    $.ajax({
    url: "http://www.worldweatheronline.com/feed/tz.ashx?key=8797446e5c053244110510&q=Chisinau&format=xml",
    dataType: "xml",
    cache: true,
    timeout: 30000,
    success: function(xml){
    $(xml).find("localtime").each(function(){
    var localtime = $(this).html();
    alert(localtime);
    });

    }

    });

    в результате ничего не происходит, при этом через TemperData в мозиле получаю статус 407. Интернет идет через прокси. На сайте можно через json, пробовал через $.getJson но результат тот-же.

    Update: —————————————--

    упс, прочитал тему ниже, с dataType: "jsonp" заработало :blush:

    п.с. а ведь просил что бы была возможность удалять свои сообщения, не делают :blush:

  2. пересмотрел ещё раз ваш код, он там не весь похоже, короче я не понял как он работает, если честно. Хочу задать пару наводящих вопросов

    1. MyClass что делает, какая его задача? Почему он наследник MYSQLConnect?

    2. такая конструкция


    private function dbdata() {
    $dbhost = "x";
    $dbuser = "x";
    $dbpass = "x";
    $dbtable = "x";
    return $data = array( $dbhost, $dbuser, $dbpass, $dbtable );
    }

    не вижу необходимости в такой многословности (или многострочности).

    если оставлять такое решение (метод, только возвращающий инициализированные в нём же переменные, что тоже считаю спорным решением) то уж проще написать:


    private function dbdata() {
    return $data = array('x', 'x', 'x', 'x');
    }

    а более красивым мне кажется решение вынести конфигурацию подключения в конфиг.файл (если такого нет, советую создать, -- ещё пригодиться, хранить все настройки в одном месте), в виде констант например, я так делаю. или ещё вариант - инициализировать переменные с данными для коннекта в начале класса.


    Class MYSQLConnect {
    private $dbhost = "x";
    private $dbuser = "x";
    private $dbpass = "x";
    private $dbtable = "x";

    function __constract()
    {
    // и так далее

    3. к стыду своему, работаю по старинке с просто mysql, поэтому не в курсе всего функционала mysqli, но может стоит добавить в ваш класс функций которые будут предоставлять данные в удобном виде, заодно обрабатывая возможные ошибки.

    1. MyClass содержит ввод и вывод данных. К примеру, стоит задача сделать систему комментариев. В этом классе введенные сообщения из формы обрабатываются и вводятся в базу, так же и вывожу комментарии.

    Для работы с базой, каждому методу надо подключать коннект к базе, тут я и решил создать отдельный класс и вызывать его с $db=parent::_construct();. На данный момент поместил этот класс в отдельный файл и где необходимо делаю инклуд.

    2. У меня появились трудности с отдельный конфиг.файлом. Случай такой был когда файл который выводит те же комментарии вставлял инклудом в файл фулл.нюз то некоторые методы класса выводились в этом файле (нюз.фулл) , и тут надо было приписать один путь к кофиг файлу, а этому же методу для обработки других действий как бы приходилось писать другой путь..как-то так... :o .... иии я тут сильно запутался иии забил)) (н3 если ты поймешь)

    Но сейчас я этот класс в отдельный файл закинул и вызываю его когда он необходим.

    3. Посмотрим что можно сделать.

    Спасибо.

  3. это вы сами класс писали? я бы в коде пару мест подкорректировал.

    ошибку рода Call to a member function on a non-object выдаёт в случае если вызывается метод или объект для переменной, которая не принадлежит к классу.

    я + php.net. По поводу класса выслушаю любые предложения, это пойдет мне на пользу.

    но кавычки не экранируются в базе

    В базе и не должны. Экранирование нужно именно для строки запроса, чтобы данные не мешались с управляющими элементами. Идеально (местами аж слишком) тема разжевана здесь (на примере MySQL, но в других СУБД принцип тот же).

    понял, спасибо

  4. $result = $db->query( "INSERT INTO `comments` VALUES (NULL,'" . $db->real_escape_string( $this->datacomment[ 1 ] ) . "', '" . $db->real_escape_string( $this->datacomment[ 0 ] ) . "', 0, '" . $db->real_escape_string( $this->datacomment[ 2 ] ) . "', CURDATE(), '" . $db->real_escape_string( $this->datacomment[ 3 ] ) . "')" ) or die( $db->error );

    Есть такой обычный инсерт в базу. При запросе данные добавляются но кавычки не экранируются в базе. При выводе этого инсерта сообщение о ошибке не выдается. Это так надо или чего-то не так делается :blink:

  5. Class MYSQLConnect {

    public function __construct() {
    return $this->dbconnect();
    }

    private function dbdata() {
    $dbhost = "x";
    $dbuser = "x";
    $dbpass = "x";
    $dbtable = "x";
    return $data = array( $dbhost, $dbuser, $dbpass, $dbtable );
    }

    protected function dbconnect() {
    $_data = $this->dbdata();

    $db = new mysqli( $_data[0], $_data[1], $_data[2], $_data[3] );

    if ( mysqli_connect_errno ( ) ) {
    printf( "Connection failed: %s\n", mysqli_connect_error() );
    exit();
    }
    return $db;
    }

    }

    Class MyClass extends MYSQLConnect{

    function __construct() {

    parent::__construct();
    $result = $db->query('SELECT * FROM comments_reputation');
    $count = $result->num_rows;

    echo $r['idreputation'];
    }
    }

    $myclass = new MyClass();

    не знаю, правильно или нет но мне выдает ошибку

    Fatal error: Call to a member function query() on a non-object in Z:\home\localhost\www\test.php on line 36

    как можно это исправить? ((

    до этого использовал

    include(connect.php);
    $db = new mysqli(...);

    и приходилось данную такое использовать в каждом методе с разными директориями но это создает проблемы ((

  6. Я так понял вы дали не реальный пример, ваш сабмит идет на сервер $.ajax запросом?

    почти реальный..., да с аяксом , с маркером так и не разобрался :unsure:

    Скажите мне пожалуйста, как вы додумались на событие клик вешать ещё одно событие? Форма у вас в документе изначально, возьмите и повесьте сразу на неё сабмит, а в момент нажатия просто показывайте её.

    Да точно, вы правы. Я чет упустил то что в диве где находится форма есть уникальный класс и думал что если будет в не открытой форме то могу получить не те данные...т.к. у меня больше форм и я хотел уточнить что именно с этой что бы извлекались данные :rolleyes:

  7. Не давайте нажимать больше одного раза, просто заблокируйте кнопку после нажатия.

    ага пробовал чет с унбинд но у меня больше форм , и при открытии другой старой опять должен присвоить бинд %) и не получается прикрутить обратно

  8. http://jsfiddle.net/Hfn3G/1/

    написал такой код...при нажатии на Клик , открывается форма, заполняем и сабмитим..все норм...НО

    если нажать больше раз на "Click..." то после сабмита формы алерт появится столько раз сколько мы нажмем на "Click"..как исправить данную траблу? ((

  9. а еще в мануале "Питер Ловэйн - Объектно-ориентированное программирование на PHP 5", автор как пример для учения создает галерею с чтением изображений из папки, объясняет красиво и с каждой новой главой модернизирует ее ;)

  10. проблему решил ((

    Если пишу


    if ($rowNum > 0) { ... };

    то ничего не выдает... а если


    if ($rowNum == 1) { ... };

    то все нормально :mellow: н3 в чем разница

    Ошибочка(( Оба варианта работают :unsure::blush:

    п.с. устал, домой хочу (( пятница

  11. Помогите :mellow:

    $rowNum = $result->num_rows; не хочет работать ((


    public function authorization($_email, $_pass) {

    include ("config.php");
    $db = new mysqli($dbhost, $dbuser, $dbpass, $dbtable);

    $result = $db->query("SELECT md5(key_salt) as hash from `users` WHERE `uemail` = 'admin@localhost.com'");

    $rowNum = $result->num_rows;

    exit($rowNum);

    $db->close();
    }

    Если ставлю

    $row = $result->fetch_array();
    exit ($row['hash']);

    то значение присваивается и выводит результат ((

  12. почему бы не сделать как-то так:


    $(document).ready(function(){
    var name_pic = $("#pic").attr("alt");
    $("#black_side").click(
    function () {
    $.ajax({
    type: "POST",
    url: "add_choice.php", /*Здесь я обращаюсь ещё к одному php файлу, не думаю, что как-то влияет*/
    data: "name="+name_pic,
    success: function(data){ /* В случае успеха хочу выполнить out_pic(), которая и вызовет php файл*/
    $("#pic").attr("src",data);
    }
    });
    return false;
    }
    );
    });

    и в этом файле add_choice.php взять название картинки и вернуть и заменить на то что есть

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy