Ajax отправка формы возвращает неопределенную ошибку - PullRequest
0 голосов
/ 28 марта 2012

Я пытаюсь отправить форму с помощью ajax. Вот мой полный код

<?php 
    $wparent = "123";
    $method = "sms";
?>

<script type="text/javascript">
    $(document).ready(function(){
        $("#post_<?php echo $wparent;?>").click(function(){
            $('#parentpost-<?php echo $wparent;?>').html('Loading.....');
            $("#parentpost-<?php echo $wparent;?>").load("<?php echo SITE_URL;?>new_ajax/post_reply.php", {message:$("[name=replynote]").val(), method:$("[name=method]").val(), parent:$("[name=parent]").val()}); //end
        }); // end of the main click function
    });
</script>

<?php   
echo "<textarea name='replynote' ></textarea>";
echo "<input type=\"submit\" class=\"post_button\" id=\"post_$wparent\" value=\"post\" />";
echo "<input type=\"button\" class=\"cancel_button\" value=\"Cancel\" />";
?>
<input type='hidden' name='parent' value='<?php echo $wparent;?>' />
<input type="hidden" name="method" value="<?php echo $method;?>" />

Когда я проверил переменные записи с помощью firebug, я увидел, что правильно отправляется только метод. Все остальные значения отправляются как неопределенные. Я не смог найти ошибку до сих пор.

1 Ответ

2 голосов
/ 28 марта 2012

Попробуйте предварительно заполнить карту data, которую вы проходите:

 $(document).ready(function () {
     $("#post_<?php echo $wparent;?>").click(function () {
         var message = $("[name=replynote]").val();
         var method = $("[name=method]").val();
         var parent = $("[name=parent]").val();
         var data = {
             "message": message,
             "method": method,
             "parent": parent
         };
         $('#parentpost-<?php echo $wparent;?>').html('Loading.....');
         $("#parentpost-<?php echo $wparent;?>").load("<?php echo SITE_URL;?>new_ajax/post_reply.php", data); //end
     }); // end of the main click function
 });

Если data является объектом, содержащим значения undefined, то ваши селекторы jQuery не работают.

Кроме того, поскольку вы используете только атрибут name для поиска своих входных данных, вы можете захотеть быть более конкретными в селекторах.

Наконец, селекторам attribute обычно требуется значение атрибута, заключенное в кавычки, поэтому попробуйте это для ваших селекторов:

     var message = $('textarea[name="replynote"]').val();
     var method = $('input[name="method"]').val();
     var parent = $('input[name="parent"]').val();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...