Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.02.2018, 22:11
Новичок на форуме
Отправить личное сообщение для almazbus Посмотреть профиль Найти все сообщения от almazbus
 
Регистрация: 19.02.2018
Сообщений: 1

Что я делаю не так в jquery?
Есть кнопка для получения бонуса это страница например many.php:

<span class="green" onclick="post('bonus.php', 'fac=bonus');">Получить бонус!</span>

Ее обработчик событий :

function post(link, zapros) {

$.ajax({

url: link, type: 'POST', data: zapros, dataType: json,

error: function (infa){eval(infa.error);},

success: function(infa) {eval(infa.succes);}

});

}

И условия выполнения в файле bonus.php

<?@session_start();

if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {

$username = (isset($_SESSION["username"]) ) ? $_SESSION["username"] : false;

if($username!=false){

if(isset($_POST["fac"])){

if($_POST["fac"] == 'bonus'){

require_once($_SERVER['DOCUMENT_ROOT'].'/class/base.php');

Получение бонуса...

$mysqli->close();

}else{

$eror ='Ошибка запроса';

}

if($eror != '0'){

$error .= "<div class=\"error\">".$eror."</div>";

}

........

}

}

}?>

Суть вопроса в том что все работает хорошо $_POST["fac"] == 'bonus' и все работает хорошо бонус начисляется , но возникает какой то косяк а именно:

Если взять и через консоль разработчика в браузере(просмотреть код) поменять например в кнопке вместо fac=bonus на fac=bonus23 и нажать на кнопку, то он должен показать код ошибки "error " т.к. bonus23!=bonus но происходит другая вещь, бонус все равно начисляется. Т.е. сколько не меняй в файле many.php значение "fac" через браузер , в bonus.php значение $_POST["fac"] посылается как мы указали в файле many.php и он не как на изменения через браузер не реагирует.

Дополнение:
При нажатии при правильных параметрах когда fac=bonus, то бонус начисляется и в консоле пишет что был один запрос.
А когда при изменении параметра на fac=bonus23, то в консоле два запроса и бонус все равно начисляется.

Вопрос? Как сделать так что бы на изменения через браузер он реагировал т.е. если человек указал через браузер fac=bonus121 то в bonus.php $_POST["fac"] = bonus121 и выводилась ошибка и был один запрос а не два?
Ответить с цитированием
  #2 (permalink)  
Старый 20.02.2018, 04:55
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

url: link, type: 'POST', data: zapros, dataType: json,

это ошибка, да и данные запроса уже сформированы в zapros.

url: link, type: 'POST', zapros, dataType: json,

Иначе никаких $_POST["fac"] сервер не получит, а то что работает он как попадя, ну так код на нем такой.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что делаю не так evgeniy123 Angular.js 4 12.02.2015 14:06
Мотоциклисты есть? l-liava-l Оффтопик 13 04.07.2014 13:35
Несколько событий в onclick. Что не так делаю. Blackmore1991 Общие вопросы Javascript 2 21.04.2014 10:27
Всплытие событий или что то не так... Кирюха =) jQuery 6 30.03.2013 12:56
Передача данных из JS в PHP - что не так? Rokugan Общие вопросы Javascript 16 30.09.2011 18:52