Сериализация и отправка формы с JQuery POST и PHP не работает

0

Я пытаюсь отправить данные формы с помощью jQuery. Однако данные не доходят до сервера, и он продолжает использовать функцию GET для получения. /?page=game&mode=search&type=private и продолжает получать эту страницу и не прекращает ее получать. Не могли бы вы рассказать мне, что я делаю неправильно?

Php:

if (isset($_GET['type'])) {
    $type = $secure->clean($_GET['type']);
} else {
    $type = '';
}

    if ($type == 'private') { 

         if ( isset($_POST['submit']))   {
             $name = $secure->clean($_REQUEST['name']);
             $checkuser = $db->fetch("SELECT * FROM accounts WHERE name == '$name''");
             if ($checkuser) {
                 $data ='<h1> The user you searched for does not exist. </h1>
            <a class="goback message" href="#">Continue</a>';

             } 
         } else {

            $checkMatch = $db->query("SELECT * FROM accounts WHERE 'id' = '".$account['id']."'");
            while ($info = mysql_fetch_array($checkMatch)) {
                $status = $info['status'];
                $gameid = $info['gameid'];
            }

            if($status = 'NULL') {

            $data ='<h1> Who do you want to battle against? </h1><br />
                    <form action=""  method="post" id="form-pb" name="pb"   target="_self" >
                    USERNAME:<input name="name" type="text" size="40" maxlength="40" />

                    <input name="submit" type="submit" value="Search"/>
                    </form>
                    <a class="goback" href="#">Cancel</a>';
            } 

        }

    echo $data;
    exit;   

    }

Javascripit

case 'submit':
        $.post('./?page=game&mode=search&type=private', $("#form-pb").serialize(), function(data){
            var $response=$(data);
            var error = $response.filter('h3').text();
            $('.search').html(data);                
            if(!error){
                match = setInterval(function(){
                if(!$('.search').length){
                    $('#main_container').prepend('<div id="popup"><div class="opacity"></div><div class="search"></div></div>');
                }
                $('.search').load('./?page=game&mode=search&type=private', function(){
                    var meta = $('#stopMe').attr('content');                                var meta = $('#stopMe').attr('content');
                    if(meta){
                        meta = meta.split("URL="), meta = meta[1];
                        window.location = meta;                                         
                    }                           
                });                             
                },1000);                    
            }
        });         
    break;

И форма

<form action=""  method="post" id="form-pb" name="pb"   target="_self" >
                USERNAME:<input name="name" type="text" size="40" maxlength="40" />

                <input name="submit" type="submit" value="Search"/>
                </form>
  • 0
    Что выводит $ ("# form-pb"). Serialize ()?
  • 0
    имя = имя пользователя
Показать ещё 10 комментариев
Теги:

1 ответ

0
Лучший ответ

Вы должны это исправить:

$checkuser = $db->fetch("SELECT * FROM accounts WHERE name == '$name''");

к чему-то вроде этого:

$checkuser_res=$db->query("SELECT * FROM accounts WHERE name == '$name''");
if($checkuser_res->num_rows==1)
{
 // The user exists
}
else
{
 // The user doesn't exist
}

Для этого я предполагаю, что вы используете mysqli, если это специальная оболочка mysql, возможно, что ваш код также работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню