jQuery:ajax没有发布到PHP

时间:2012-03-31 23:30:17

标签: php jquery ajax

你好顽皮的代码动物..

我试图让这段代码工作,并且还要搜索它。但我发现没有我能理解的最新答案。 所以我会给你表格,然后是jQuery。

FORM:

<div id="blab_form_overcontent">
    <table border="0" align="center">
        <form id="submit_blab" method="post">
        <input type="text" name="blab_title" id="blab_title" value="" placeholder="title(optional):"/><br/>
        <textarea name="blab_text" id="blab_text" value="" placeholder="text:"></textarea>
        <input type="submit" id="blab_submitb" name="blab_submitb" value="Post"/>
        </form>
        <div class="success" style="display: none;">Blab has been added.</div>
    </table>
</div>

jQuery的:

$(document).ready(function(){
  $("form#submit_blab").submit(function() {
  // I store the values from the form input box, then send via ajax below
  var blab_title   = $('#blab_title').attr('value');
  var blab_text    = $('#blab_text').attr('value');
    $.ajax({
        type: "POST",
        url: "classes/profileActions.php",
        data: "blab_title="+ blab_title +"&amp; blab_text="+ blab_text,
        success: function(){
            $('form#submit_blab').hide(function(){$('div.success').fadeIn();});

        }
    });
    return false;
  });
});

注意:我知道它不是我的profileActions.php,这是问题,因为代码不会发布任何东西。它只重新加载页面。

此致 无能的白痴。

3 个答案:

答案 0 :(得分:3)

它正在刷新页面,因为您没有告诉它不刷新页面。 :)

$('#submit_blab').submit(function(e){
  //start with preventing the default submit action...
  e.preventDefault();

  var blab_t   = $('#blab_title').val();
  var blab_txt    = $('#blab_text').val();

  var json = { blab_title: blab_t, blab_text: blab_txt }      

  $.ajax({
    type: "POST",
    url: "classes/profileActions.php",
    data: json,
    success: function(){
        $('form#submit_blab').hide(function(){$('div.success').fadeIn();});
    }
  });
});

答案 1 :(得分:2)

除了另一个答案中提到的刷新问题,您的data查询字符串是奇数。您不需要对&进行编码,并且还有额外的空格。最好使用对象文字:

// Instead of:
data: "blab_title="+ blab_title +"&amp; blab_text="+ blab_text,

// Use an object literal:
data: {
  "blab_title": blab_title, 
  "blab_text": blab_text
},

答案 2 :(得分:1)

或者您可以使用serialize()在POST中传递数据

 data: $("#submit_blab").serialize(),

另外,您也可以将提交更改为单击

 $("#blab_submitb").click(function(e)