php - onclick 表单通过 ajax 发送没有页面刷新

标签 php jquery ajax forms

几天来我一直在绞尽脑汁查看示例并尝试不同的方法来尝试让我的表单在不刷新页面的情况下使用 Ajax 提交。而且它现在甚至没有发送数据。我不知道我做错了什么。有人可以通过我的 ajax 和表单运行吗?

Toid 是用户 ID,newmsg 是用户提交的文本。这两个值被发送到 insert.php 页面。

我真的很想得到帮助。我是 Ajax 的新手,我看了其中的一些但没有任何线索。如果我最终让它工作,它可能会帮助我意识到我做错了什么。我正在查找教程和观看视频..但是对于这里的知情人士来说很简单的事情可能会非常耗时。可能是我对 ajax 有错误的想法,这完全没有意义,对此深表歉意。

<script type="text/javascript">

$(document).ready(function(){

    $("form#myform").submit(function() {
homestatus()      
event.preventDefault();
var toid = $("#toid").attr("toid");
var content = $("#newmsg").attr("content");

    $.ajax({
        type: "POST",
        url: "insert.php",
        data: "toid="+content+"&newmsg="+ newmsg,
        success: function(){
           }
    });
    });
return false;
});
</script>


<form id="myform"  method="POST"  class="form_statusinput">
<input type="hidden"  name="toid" id="toid" value="<?php echo $user1_id ?>">
<input class="input" name="newmsg" id="newmsg" placeholder="Say something" autocomplete="off">
<div id="button_block">
<input type="submit" id="button" value="Feed" onsubmit="homestatus(); return false" >
</div>
</form>

插入.PHP

$user1_id=$_SESSION['id'];
if(isset($_POST['toid'])){

if($_POST['toid']==""){$_POST['toid']=$_SESSION['id'];}

if(isset($_POST['newmsg'])&isset($_POST['toid'])){
if($_POST['toid']==$_SESSION['id']){
rawfeeds_user_core::create_streamitem("1",$_SESSION['id'],$_POST['newmsg'],"1",$_POST['toid']);
}else{
rawfeeds_user_core::create_streamitem("3",$_SESSION['id'],$_POST['newmsg'],"1",$_POST['toid']);

最佳答案

尝试使用 firebug 来识别代码中的错误。它是开发 javascript 的真正好伙伴。几乎所有错误都会导致 firebug 控制台中出现错误消息。

您的代码中有几个错误,这是更正后的版本:

$(document).ready(function(){
    $("form#myform").submit(function(event) {
        event.preventDefault();
        var toid = $("#toid").val();
        var newmsg = $("#newmsg").val();

        $.ajax({
            type: "POST",
            url: "insert.php",
            data: "toid=" + content + "&newmsg=" + newmsg,
            success: function(){alert('success');}
        });
    });
});

这里是更正后的 html:

<form id="myform"  method="POST"  class="form_statusinput">
<input type="hidden"  name="toid" id="toid" value="<?php echo $user1_id; ?>">
<input class="input" name="newmsg" id="newmsg" placeholder="Say something" autocomplete="off">
<div id="button_block">
<input type="submit" id="button" value="Feed">
</div>
</form>

关于php - onclick 表单通过 ajax 发送没有页面刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11588507/

相关文章:

Javascript 的 "document.write()"中的 PHP 代码

javascript - 当 parent 停止传播时如何让 A 标签点击?

jquery - $.fancybox.cancel() 不起作用

javascript - 如何从 jquery 对象映射中过滤唯一的数据属性值

jQuery 和数据属性来处理所有 ajax 调用?

mysql - 数据从一个页面调用到另一页面?

php - 同一域中的多个网站

php - 逻辑和物理 URL

javascript - 删除和刷新列表的 Ajax 调用不起作用

javascript - 使用 AJAX 刷新的 Wicket 组件 "wicket:head"部分