2013-12-03 2 views
0

Мне нужна помощь ... почему мой код не работает? Каков правильный способ получить данные из form.serialize? мины не работают .. тоже делаю это правильно, передавая его php? Также мой PHP код выглядит ужасно и не выглядит как хороший OOPПолучение данных из form.serializaArray()

HTML

<form action="" name="frm" id="frm" method="post"> 
      <input type="text" name="title_val" value="" id="title_val"/> 
      <a href="javascript:;" title="" id="save">post topic</a> 
     </form> 
     <div id="test"> 
     </div> 

Javascript

$(document).ready(function() { 
     $('#save').click(function() { 
      var form = $('#frm'); 
      $.ajax({ 
       url: 'topic.php', 
       type:'get', 
       data: form.serializeArray(), 
       success: function(response) { 
        $('#test').html(response); 
       } 
      }); 
     }); 

    }); 

Php

<?php 
    class test{ 

     public function test2($val){ 
      return $val; 
     } 
    } 

    $test = new test(); 
    echo $test->test2($_POST['title_val']); 

?> 

ВЫВОД

enter image description here

+0

Что делает var_dump ($ _ GET); возвращается в ваш php? Кроме того, почему вы используете GET? Что возвращает console.log (frm.serializeArray) – intelis

+0

Я добавил вывод ... не знаю, почему его ошибка – Cindy93

+0

im пытается узнать form.serializeArray() – Cindy93

ответ

0

Вы говорите свой Ajax вызов, чтобы отправить переменные в качестве GET переменных, а затем пытается получить доступ к ним с $_POST hyperglobal. Изменение GET в POST:

type:'post', 

Кроме того, следует отметить, что вы являетесь обязательными для вашего АЯКСА вызова к нажмите на кнопке подтверждения, чтобы ваша форма будет еще опубликует. Вы должны привязать на форму отправьте функцию вместо этого и используйте preventDefault, чтобы предотвратить отправку формы.

$('#frm').submit(function(e) { 
    e.preventDefault(); // stop form processing normally 
    $.ajax({ 
     url: 'topic.php', 
     type: 'post', 
     data: $(this).serializeArray(), 
     success: function(response) { 
      $('#test').html(response); 
     } 
    }); 
}); 
+0

ooh .. искал проблему php со вчерашнего дня. Затем ошибка была на javascript ... -_- .. – Cindy93

+0

well.Thanks @scrowler .. :) .. так что мой php отлично? – Cindy93

+0

Это зависит от того, хотите ли вы использовать 'POST' или' GET' - я бы рекомендовал 'POST', чтобы ваши переменные не попадали в строку запроса. В вашем случае ваш PHP в порядке - вам, вероятно, придется «unserialize» ваши данные, хотя: http://us3.php.net/unserialize –

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