2014-09-25 2 views
0

Я хотел изменить видимость миниатюры до видимого сразу после нажатия кнопки, что мне делать? пожалуйста, помогите мне в этом, потому что я не могу понять это сам, потому что я не так много знаю об аяксе и веб-программировании. Заранее спасибо. Может ли кто-нибудь помочь мне с моим кодом ajax?

function ha(){ 
 
$('#tabExe').click(function(event){ 
 
    $.ajax({ 
 
     url:'backEnd/ROOMS.php', 
 
     success:function(result){ 
 
     $('#room1').css({ // this is just for style   
 
      "visibility" : "visible", 
 
     }); \t 
 
     } 
 
    }); 
 
    }); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<button style="border-radius:0px;" type="submit" name="tabExe" onClick="function ha();" id="tabExe" href="#Exec" class="btn btn-primary"> 
 
    Executive Room 
 
</button> 
 
      
 
<div id = "rm1" class="col-xs-12 col-md-3"> 
 
    <a id="room1" value="sa" href="#" class="thumbnail" style="visibility:hidden;"> 
 
    <img class="img-responsive" src="../backEnd/res/img/login/roomActive.png" style="width:100px;"> 
 
    </a> 
 
</div>

+1

Когда вы говорите: «Я хотел изменить видимость миниатюры до видимого сразу после нажатия кнопки», вы хотите, чтобы вы сразу показывали миниатюру или дождались ответа, и THEN покажет это? – Jack

+0

Я просто хочу показать миниатюру, они сказали, что мне нужно использовать ajax, потому что при использовании ajax страница не обновит страницу, поэтому любые изменения останутся. потому что есть один раз, когда я не использовал ajax и просто использовал метод POST на кнопке, я узнал, что мой миниатюра становится видимым, но снова скрывается сразу после обновления страницы из-за метода POST –

ответ

1

Если вам просто нужно показать миниатюру (и вы не обеспокоены ответа), включают в себя beforeSend обратного вызова, как это:

$('#tabExe').click(function(event){ 
    $.ajax({ 
     url:'backEnd/ROOMS.php', 
     beforeSend: function() { 
      $('#room1').css({ // this is just for style   
       "visibility" : "visible", 
      }); 
     }, 
     success:function(result){ 

     } 
    }); 
}); 

Это будет вызывать, прежде чем сделать ajax-запрос. success и error вызываются только после завершения запроса.

Вот скрипка демонстрирующий:

http://jsfiddle.net/jpattishalljr/rzr5mrL1/

EDIT: Если вам нужна миниатюра, чтобы показать, когда ответ возвращается, то вы хотите посмотреть в ответ Ajax и понять, почему success не называется. Один из способов испытания, чтобы добавить complete, что-то вроде этого:

$('#tabExe').click(function(event){ 
    $.ajax({ 
     url:'backEnd/ROOMS.php', 
     beforeSend: function() { 
      $('#room1').css({ // this is just for style   
       "visibility" : "visible", 
      }); 
     }, 
     success:function(result){ 

     }, 
     complete: function(results) { 
      alert(results.status); 
     } 
    }); 
}); 

http://jsfiddle.net/jpattishalljr/rzr5mrL1/1/

Если предупредить (404)

удачи.

+0

сэр, спасибо вам большое, я теперь может сделать это видимым! wee im so happy, но почему мне нужно дважды щелкнуть кнопку, чтобы сделать ее видимой? и эта ошибка 404 тоже всплывает –

+0

Что касается двойного щелчка - это связано с тем, что привязка события выполняется в функции 'ha'. Вместо этого, как предложил Гаррет, вы захотите использовать '$ (document) .ready' и удалить' onClick = 'функцию ha() "' Что касается 404, если вы добавили «полный» обратный вызов, это означает, что ваш ajax вызов не выполняется (поэтому успех никогда не вызывался) - он просто проверяет ошибку с вашей конечной точкой ('backEnd/ROOMS.php'). – Jack

+0

, но выполнение этого $ (документа) не помогает, когда я снова использовал onClick, это сработало. –

Смежные вопросы