Ну для начала не так :
$suc .= "$('#add$id').load('test.php #add$id');many($id);";
а вот так:
$suc .= "$(#add+$id).load(test.php #add+$id);many($id);";
Затем что показывает лог в браузере?
В идеале кинь ссылку на сайт и страницу.
вообще на сколько я понял ты отправляешь запрос на ту же страницу где у тебя расположен скрипт? то есть обработка запроса на той же странице что и код вывода что по сути не есть хорошо, сделай отдельный файл для обработки php и просто передавай запросы даже не обязательно json так как ты передаёшь готовый html для этого можно использовать просто data и ненадо делать кнопку, смысл? вешай на onclick
<div onclick="her('сюда id можно вешать','сюда второй параметр');">
function her('id','2'){
var s1 = $.trim($("#id_того в чём это число"+id).text()); // Получи начальное число
var s2 = $.trim($("#id_того в чём это число"+id).text()); // Получи прибавляемое или вычитаемое число
val1 = (s1*1 + s2*1); // Прибавь или вычти второе число
var plan = ($('#plan').val());
$.ajax({ // Отправь данные для обработки
url: /ссылка на отдельную страницу для обработки,
type: 'POST',
data: {'func' : 'her', 'plan' : plan},
beforeSend: function(){progress = true;},
success: function(data){
if(data == 1){
// Тут что хочешь после успешного выполнения функции her
$("#id_куда вставишь готовый результат вычисления").html(val1);
}
}
});
};
// Сама обработка в отдельном файле
if($_POST['func'] == "her"){
$plan = проверка($_POST["plan"]);
n// и так далее
echo "1";
}
Таким образом все подсчёты выполнит один скрипт и только при успешном выполнении обработчиком заданной ему функции.
P.S в исходный код не смог запилить так как всё почему то в одну строчку получилось