Не удалось получить доступ к значениям формы после вызова $ .POST? - PullRequest
0 голосов
/ 23 сентября 2011

У меня есть форма и я использую $ .POST для отправки ее на какой-то URL.

Оттуда я не мог получить доступ к значениям формы. Я не знаю, в чем может быть ошибка ??

Форма похожа на

<form id="registration-form" >
<input type="hidden" name="Profile[fb_uid]" value='1232323'></input>"
<select name="Profile[feet]" id="feet">
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
<a class="btnLgBlueGrad" href="#" name="closeModal" id="profileSubmit">Start</a>
</form>

вызов js такой:

$( "#profileSubmit" ).click(function() {
        $.post("?r=site/addBasicProfile",
                function(data){
                alert(data); // this is alerting as empty
                    if(data==1)
                        window.location.href="?r=site/index";
                });
        });

Фактический метод, который вызывается,

public function actionAddBasicProfile(){
    echo $_REQUEST['profile']; 
    // when i echo something static it is reflected in the ajax callback function
 }

Я уверен, что URL-адрес правильный и запрос ajax пройден.

Ответы [ 3 ]

2 голосов
/ 23 сентября 2011

Это потому, что вы не передаете данные в $ .post () с сайта jquery:

jQuery.post( url, [data,] [success(data, textStatus, jqXHR),] [dataType] )

Итак, вы должны передать некоторые данные в ваш php-скрипт:

$.post("?r=site/addBasicProfile",
    $('#registration-form').serialize(), // this will serialize the form data
    function(data){
       alert(data); // this is alerting as empty
       if(data==1)
       window.location.href="?r=site/index";
    }
);

И в качестве примечания вы должны использовать $_POST для получения значений POST, поскольку $_REQUEST также может получать значения GET.

0 голосов
/ 23 сентября 2011

вам нужно передать параметры формы как данные с помощью вызова $ .post.
примеры @ http://api.jquery.com/jQuery.post/

Вы также можете использовать ajaxSubmit, доступный с плагином форм JQuery, который будет обрабатывать его для вас. @ http://jquery.malsup.com/form/

$ ( '# форма'). AjaxSubmit ({ успех: handle_success, });

0 голосов
/ 23 сентября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...