eval не работает с переменной

моя проблема eval с переменной. Я использую $.post, это так хорошо для меня. И возвращение

$(#172161616).css("color",'blue'); или $(#172161616).css("color",'red');

это работает, я могу вернуть это, но как я могу запустить этот код в ответе функции.

$.post("switch-up-control.php", {
        ip: ip,
        id: sw_id
    }, function(response){
         eval(response);        //i want run code here.
    });

ошибка: Uncaught SyntaxError: Unexpected token ILLEGAL

Спасибо всем.


person yunusemremeral    schedule 24.02.2016    source источник
comment
О мой Бог! Почему бы не вернуть с сервера json и не использовать eval()function(). Это опасно   -  person Marcos Pérez Gude    schedule 24.02.2016
comment
Я бы предложил, чтобы ваш php-файл возвращал json. Что-то похожее на этот пример: { "id": 172161616, "css-property": "color", "css-value": 'red'}. Тогда вы сможете извлечь переменные и скомпилировать команду jQuery, не прибегая к вызову злого eval :)   -  person Lix    schedule 24.02.2016
comment
Я должен вернуть это? '{id: 172161616, css-свойство: цвет, css-значение: 'красный'}'   -  person yunusemremeral    schedule 24.02.2016


Ответы (2)


То, что вы пытаетесь сделать, кажется плохой идеей, но вы получаете сообщение об ошибке, потому что код недействителен. Вокруг селекторов нет кавычек:

$(#172161616).css("color",'blue');

это, вероятно, должно быть:

$("#172161616").css("color",'blue');
person JLRishe    schedule 24.02.2016

Как я рекомендую в своем комментарии, вы должны вернуть json с сервера и использовать его в качестве переменных:

$.post("switch-up-control.php", {
    ip: ip,
    id: sw_id
}, function(response){
     $(response.selector).css('color', response.color);
});

И строка с сервера:

{selector: '#someselector', color: 'blue'}
person Marcos Pérez Gude    schedule 24.02.2016