Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.08.2012, 17:31
Интересующийся
Отправить личное сообщение для red-nicolas Посмотреть профиль Найти все сообщения от red-nicolas
 
Регистрация: 25.02.2012
Сообщений: 19

Возвращение результата с сервера
Проверяю введены данные с формы на уникальность. Для отправки на сервер использую скрипт:
$("form").submit(function(){
    var checkString = $("#cat").val();
	var data= 'cat='+ checkString;
    if(checkString) {
        $.ajax({
            type: "POST",
            url: "test.php",
            data:data,
            success: function(html){ // получаем результаты
               		$("#massege").text(html);
					return html;
				    }
        });
}
});


Для проверки такой пхп
$cat=$_POST['cat'];
//если к нам идёт $_POST запрос
if (isset($_POST['cat'])) {

$db=mysql_connect ("localhost", "u1624514_chef", "design-1984");
mysql_select_db ("u1624514_osnova",$db); 
mysql_query('SET NAMES utf8');
	
$r=mysql_query ("SELECT id FROM 001_cat WHERE cat='$cat'",$db);
$m=mysql_fetch_array ($r);
    // получаем результаты
    if($m['id'] == 0) {
		return true;
    } else {
		return false;
    }
}


Не пойму как в случае уникальности отправить форму на добавления, в противном случае вывести сообщение об не уникальности?
Ответить с цитированием
  #2 (permalink)  
Старый 30.08.2012, 18:53
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

Как-то так

if($m['id'] == 0) {
//тут сделать инсерт и вернуть 1
	    echo 1;
//это не нужно	        return true;
	    } else {
	    echo 0;
//это не нужно	        return false;
	    }


success: function(html){ // получаем результаты

//проверить html на 1 или 0 и алертом "Вы зарегистрированы" или "Логин не уникален"

//это не нужно	                    $("#massege").text(html);
//это не нужно	                    return html;
	                    }
Ответить с цитированием
  #3 (permalink)  
Старый 01.09.2012, 15:18
Интересующийся
Отправить личное сообщение для red-nicolas Посмотреть профиль Найти все сообщения от red-nicolas
 
Регистрация: 25.02.2012
Сообщений: 19

$("form").submit(function(){
    // получаем то, что ввёл пользователь
    var checkString = $("#cat").val();
	var data= 'cat='+ checkString;
    // если checkString не пуста
    if(checkString) {
        $.ajax({
            type: "POST",
            url: "test.php",
            data:data,
            success: function(html){ // получаем результаты
               		$("#massege").text(html);
					if(html==1){var result=true;}else{var result=false;}
										return result;
				    }
        });
}


Сделал так, но форма все равно отправляется. Как не отправлять форму если значение уже есть в базе?
Ответить с цитированием
  #4 (permalink)  
Старый 01.09.2012, 15:38
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

Никак. Всё равно первым пунктом будет отправка формы на сервер, вторым - проверка в базе. Можно снести форму, если при проверке окажется, что значение есть в базе.
Ответить с цитированием
  #5 (permalink)  
Старый 01.09.2012, 16:36
Интересующийся
Отправить личное сообщение для red-nicolas Посмотреть профиль Найти все сообщения от red-nicolas
 
Регистрация: 25.02.2012
Сообщений: 19

Сообщение от Serg_pnz Посмотреть сообщение
Никак. Всё равно первым пунктом будет отправка формы на сервер, вторым - проверка в базе. Можно снести форму, если при проверке окажется, что значение есть в базе.
Если добавить в функцию return false

$("form").submit(function(){
    // получаем то, что ввёл пользователь
    var checkString = $("#cat").val();
	var data= 'cat='+ checkString;
    // если checkString не пуста
    if(checkString) {
        $.ajax({
            type: "POST",
            url: "test.php",
            data:data,
            success: function(html){ // получаем результаты
               		$("#massege").text(html);
					if(html==1){var result=true;}else{var result=false;}
					alert(result);
					return result;
					$("form").text(result);
				    }
        });
}
return false; 
});


то форма не отправиться, как мне в это место (return false) вывести значение result?
Ответить с цитированием
  #6 (permalink)  
Старый 01.09.2012, 16:38
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

red-nicolas,
Как скрипт узнает, что значение есть в базе, без отправки формы ?
Или база заранее уже передана на клиента ?
Ответить с цитированием
  #7 (permalink)  
Старый 01.09.2012, 16:43
Интересующийся
Отправить личное сообщение для red-nicolas Посмотреть профиль Найти все сообщения от red-nicolas
 
Регистрация: 25.02.2012
Сообщений: 19

Сообщение от Deff Посмотреть сообщение
red-nicolas,
Как скрипт узнает, что значение есть в базе, без отправки формы ?
Или база заранее уже передана на клиента ?

Через $.ajax, в коде выше происходит аякс запрос и в зависимости от ответа возвращается 1 или 0. Но как отправлять или не отправлять форму от этих результатов я не пойму.
Ответить с цитированием
  #8 (permalink)  
Старый 01.09.2012, 17:46
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от red-nicolas
Через $.ajax, в коде выше происходит аякс запрос и в зависимости от ответа возвращается 1 или 0. Но как отправлять или не отправлять форму от этих результатов я не пойму.
Может так ?
$("form").submit(function(){
    // получаем то, что ввёл пользователь
    var checkString = $("#cat").val();
	var data= 'cat='+ checkString;
    // если checkString не пуста
    if(checkString) {
        $.ajax({
            type: "POST",
            url: "test.php",
            data:data,
            success: function(html){ // получаем результаты
               		$("#massege").text(html);
					if(html==1){var result=true;
*!*
					$("form").submit();
*/!*
					}else{var result=false;}
					alert(result);
					return result;
				    }
        });
}
return false; 
});
Ответить с цитированием
  #9 (permalink)  
Старый 01.09.2012, 20:54
Интересующийся
Отправить личное сообщение для red-nicolas Посмотреть профиль Найти все сообщения от red-nicolas
 
Регистрация: 25.02.2012
Сообщений: 19

Такой вариант не срабатывает, получается цикл.

Я немного поменял код:

$("form").submit(function(){
	var checkString = $("#cat").val();
    	$.post(
  "test.php",
  {
    cat: checkString
  },
  function(data){
	  alert(data);
	  
	  });

});


В data возвращается 1 или 0 в зависимости от уникальности. Как в таком случае не отправлять форму если пришел 0 и отправить если пришло 1?
Ответить с цитированием
  #10 (permalink)  
Старый 01.09.2012, 21:15
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

Повторно что ли не отправлять? А если юзер хочет уже другое что-то отправить? А если он отправит по очереди "Яблоко", "Груша", "Яблоко"?
Не страдайте ерундой...
Или объясните что вам надо сделать, но без кода, а на нормальном русском языке, с чувством, толком, расстановкой.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновление страницы после получения ответа от сервера potrashitel AJAX и COMET 9 24.02.2015 10:04
Возвращение результата из ajax запроса ozzon91 Общие вопросы Javascript 16 01.08.2012 10:12
"success" и "failure" приём данных с сервера ??? potkin ExtJS 8 30.05.2012 09:27
Возвращение результата. gen552 AJAX и COMET 6 26.06.2011 10:12
Ответ сервера в плугине ajaxForm отдается неправильно. IgorOk jQuery 11 13.12.2009 04:35