php - 单击提交按钮时防止页面重新加载并调用 jquery 函数

标签 php jquery ajax reload

表单标签内容为:-

<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ;?>" >

按钮标签内容是:-

<input type="submit" id="submit_button" value="Submit">

j-query 函数是

$('#submit_button').click(function ()
            {        
                alert("button clicked");
                buildingVal = $("#building").val();
                levelVal = $("#level").val();
                data = 'building=' + buildingVal.val() + 'level=' + levelVal.val();
                $.ajax(
                {

                    url: "res.php", 
                    type: "POST",
                    data: data,     
                    success: function (data) {
                    }
                });
                return false;
            });

页面正在重新加载,文本框和下拉菜单中的数据正在消失。

但是如果我在 jquery 中只有这段代码:-

$('#submit_button').click(function ()
            {        
                alert("button clicked");
 return false;
            });

然后页面不会重新加载并且值保持不变。

请问您能告诉我如何防止页面重新加载吗?

此外,在 ajax 调用中,我将调用一个页面 res.php,它将返回一个表,

代码是什么

success: function (data) {
                    }

请帮忙...

编辑:

我使用代码将数据传递到 res.php 页面

data = 'building=' + buildingVal.val() + 'level=' + levelVal.val();

然后使用将其传递到页面

$.ajax(
                {

                    url: "res.php", 
                    type: "POST",
                    data: data,     
                    success: function (data) {
                        $('#npc').html(data);
                    }
                });

在res.php页面

如何从传递的单个值中提取两个值

我尝试使用以下代码

$building = mysql_real_escape_string($_GET['building']);
$level = mysql_real_escape_string($_GET['level']);

但是没用...

最佳答案

您的 jQuery 代码有错误:

错误:

buildingVal = $("#building").val();
levelVal = $("#level").val();
data = 'building=' + buildingVal.val() + 'level=' + levelVal.val();

解决方案:

buildingVal = $("#building");
levelVal = $("#level");
data = 'building=' + buildingVal.val() + '&level=' + levelVal.val();

完整代码js:

$('#submit_button').click(function () {        

   var 
       buildingVal = $("#building"),
       levelVal = $("#level"),
       data = 'building=' + buildingVal.val() + '&level=' + levelVal.val();


   $.ajax({
      'url': 'res.php', 
      'type': 'POST',
      'data': data,     
      'success': function (data) {
      }
   });

   return false;

});

编辑

如果您打算使用此表单通过ajax发送数据,最好的方法是取消“提交”表单事件:

HTML:

<form id="myform" method="post" action="<?php echo $_SERVER['PHP_SELF'] ;?>" >
...
</form>

JS:

$('#myform').bind('submit', function(event) {

     return false;
});

$('#submit_button').bind('click', function () {        

   var 
       buildingVal = $("#building"),
       levelVal = $("#level"),
       data = 'building=' + buildingVal.val() + 'level=' + levelVal.val();


   $.ajax({
      'url': 'res.php', 
      'type': 'POST',
      'data': data,     
      'success': function (data) {
      }
   });

});

关于php - 单击提交按钮时防止页面重新加载并调用 jquery 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12214624/

相关文章:

javascript - 如何在 laravel 中使用 jquery 从数据库中获取特定行并将其绑定(bind)到文本框字段

Jquery模糊()异常

php - 使用 php 和 mysql 从表单插入数据库表时收到错误

php - VPS 重新启动后,OpenLiteSpeed Cyber​​Panel 上的 Wordpress 出现 404 错误

jquery - 不透明度动画在 jQuery 和 CSS 中不起作用

javascript - 从两个数组创建 JSON 对象

javascript - 使用 Ajax 加载页面时,返回按钮不起作用

php - 在 PHP 中动态检查来自 MySQL 的动态复选框

php - 尝试返回一个表中的所有行,并计算另一个表中具有匹配 ID 的行数

jquery - 拆分和合并图像动画