2013-03-04 3 views
2

как говорится в заголовке ... как я могу преобразовать слово в оператор? У меня есть сценарий в AJAXкак ... «плюс» b для преобразования в «+» b

function calcPrice(elem,id,pret,i){ 

$.ajax({ 
    type: "POST", 
    url: "data.php", 
    data: "action=calcPrice&sign="+elem.className+"&id="+id+"&pret="+pret, 
    success: function(msg){ 
    hcont = get_response_tag('tag1',msg); 
    hcont2 = get_response_tag('tag2',msg); 
    $(".price_val").html(hcont); 
    $(".nb_analize").html(hcont2); 

    if(elem.className=='plus'){ $("#p_row_"+i).removeClass("row_plus").addClass("row_minus"); elem.className = 'minus'; } 
    else{ $("#p_row_"+i).removeClass("row_minus").addClass("row_plus"); elem.className = 'plus'; } 
    } 
}); 

} 

, который когда я нажимаю на знак плюс (или минус), она возвращает значение, а слово «плюс» или «минус». в data.php я хочу, чтобы иметь возможность сделать арифметику на основе «плюс» или «минус» слов или преобразовать эти слова в операторах ...

ответ

1
if($operator == "plus") { 
    return $val1 + $val2; 
} elseif($operator == "minus") { 
    return $val1 - $val2; 
} 

простейший пример. В действительности вы, вероятно, должны отправить запрос на другую конечную точку, на основе которой они нажимают.

+0

И, конечно, добавьте 'parseInt' к элементам. – Peon

+0

может быть '(float)'? –

+0

Или 'parseFloat', в зависимости от типов элементов :) – Peon

0

Попробуйте как:

if($val=="plus") 
    return $a + $b; 
else 
    return $a - $b; 
0

Использование preg_replace здесь идеально. Вы можете использовать эту функцию для замены шаблонов в строке другими шаблонами. Прочитайте documentation