2014-01-27 2 views
0

У меня есть сценарий jquery, который принимает значение выбранного переключателя и отправляет его на другой скрипт php для обработки. Я подозреваю, что что-то не так с селектором, но я использовал

$("input[name='act']:checked").val() 

в консоли Firebug, и это правильное значение.

Кроме того, я использовал предупреждение, чтобы показать всплывающее окно выбранного значения и правильное значение с помощью:

alert($("input[name='act']:checked").val()); 

код кажется твердым, как хорошо, как я создал поле «тест», чтобы получить возможность отправлять , и появилось правильное значение.

Благодарим за помощь!

код JQuery:

<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script> 

<script type="text/javascript" language="javascript"> 
    $(document).ready(function() { 
     $("#driver").click(function(event){ 
     alert($("input[name='act']:checked").val()); 

       $('#mainarea').hide('fast'); 
       $('#mainarea').empty(); 

      $.post(
      "facultyoptions.php", 
      { 
       act: $("input[name='act']:checked").val(), 
       test: 'test' 
      }, 
      function(data) { 
       $('#mainarea').empty(); 
       $('#mainarea').append(data); 
       $('#mainarea').show('slow'); 
      } 

     ); 
     }); 
    }); 



    </script> 

HTML

<form id="facultyportal" name="facultyportal" method="post" action="facultyoptions.php"> 

<input type="radio" id="blank" name="act" value="blank"/> 
</br> 
<input type="radio" id="copy" name="act" value="copy" /> 
</br> 
<input type="radio" id="temp" name="act" value="temp"/> 
</br> 

<input type="button" id="driver" class="btn btn-danger" value="Submit" /> 

</form> 

facultyoptions.php

<?php 

echo 'HI</br>'; 

echo $_POST['act']; 

echo $_POST['test']; 

?> 

Результаты:

Привет
Test

+1

Если это помогает, в Firebug вы можете использовать вкладку Net для просмотра запроса точной HTTP (чтобы увидеть заголовки/что разместили) –

+0

Спасибо за Net информации табл. Я дал ему шанс, и это показывает, что было опубликовано только тестовое поле. – rawrzors

ответ

1

Вам необходимо указать return false в конце обработчика click или использовать event.preventDefault() в начале обработчика.

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

Так

$(document).ready(function() { 
     $("#driver").click(function(event){ 
      //alert($("input[name='act']:checked").val()); 

      $('#mainarea').hide('fast'); 
      $('#mainarea').empty(); 

      $.post("facultyoptions.php",{ 
        act: $("input[name='act']:checked").val(), 
        test: 'test' 
       },function(data) { 
        $('#mainarea').empty(); 
        $('#mainarea').append(data); 
        $('#mainarea').show('slow'); 
       }); 

      return false; 
     }); 
    }); 

ой, и удалить предупреждение, поскольку это может помешать вашей попытке остановить нормальный представить.


Обновление для полноты

После обсуждения в комментариях, мы определили проблему в .empty() вызова.

Соответствующий input элемент был внутри #mainarea элемента и поэтому его получение удален перед доступом к ней ..

+0

Я пробовал ваш код, все равно не повезло.У меня создалось впечатление, что если бы я сделал это type = "button", форма не представила бы, поэтому мне не пришлось бы возвращать false/preventDefault() – rawrzors

+0

@rawrzors, возможно, вы правы в этом. Откройте консоль и проверьте, отправлены ли ваши данные. –

+0

Firebug говорит, что только тестовое поле отправляется на facultyoptions.php. Не знаю, почему. – rawrzors

0

Вам нужно не отправить форму

Так придает представить событие и использовать preventDefault - нет нужно добавить после пустой

$(function() { 
    $("#facultyportal").on("submit",function(event){ 
    event.preventDefault(); // stop submission 
    var act = $("input[name='act']:checked").val();// save before emptying 
    $('#mainarea').empty().hide('fast'); 
    $.post("facultyoptions.php",{act: act,test: 'test'}, 
     function(data) { 
     $('#mainarea').html(data).show('slow'); 
    }); 
    }); 
}); 
+0

Я пробовал ваш код и заменял свой тип ввода =" button " input type = "submit", но он все равно не работает. – rawrzors

+0

Что означает «не работает»? сообщений в консоли? возвращает ли нормальная форма возвращаемые ожидаемые данные? – mplungjan

+0

Тот же выход, что и в оригинальной записи. – rawrzors

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