首页 文章

插入没有刷新与PHP和ajax无法正常工作

提问于
浏览
2

我正在研究一个asp项目,现在我已经迁移到了php . 我使用ajax脚本提交到数据库而不刷新asp中的页面 . 现在我在php中使用相同的ajax脚本,但它无法正常工作 . 当我在谷歌浏览器中打开控制台时,它也没有显示任何错误,但是当我检查数据库时,我发现没有提交任何记录 .

HTML和AJAX

<!DOCTYPE html>
<html>
<head>
<script src="jquery/jquery.js"></script>

<script>


$(function(){
      $("#form1").submit(function() {
            $.post("insert.php", $(this).serialize(),function(data){
                  // I am done. The page returned by insert_db.php is now in data
            } )
            return false
      })
})

</script>

</head>

<body>
<form method="post" id="form1">
<table>

    <tr>
        <td>firstname</td>
        <td><input type="text" name="fname"  id="fname"/></td>
    </tr>
    <tr>
        <td>lastname</td>
        <td><input type="text" name="lname"  id="lname"/></td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td><input type="submit"  id="submit" value="Submit" /></td>
    </tr>
</table>

</form>
<table border="1">


</table>

</body>
</html>

PHP

<?php require_once('Connections/connect.php'); ?>


<?php
if (isset($_POST['submit']))
    {      
    include 'connections/connect.php';

                    $fname=$_POST['fname'] ;
                    $lname= $_POST['lname'] ;                   


         mysql_query("INSERT INTO users(fname,lname) VALUES ('$fname','$lname')"); 


            }
?>

连接线

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_connect= "localhost";
$database_connect = "speedapp";
$username_connect= "root";
$password_connect= "user2";
$connect= mysql_pconnect($hostname_connect, $username_connect, $password_connect) or trigger_error(mysql_error(),E_USER_ERROR); 
?>

6 回答

  • 0

    您尚未选择数据库 . 在 connect.php 中包含以下内容

    $db = mysql_select_db($database_connect);
    
  • 0
    $(function(){
          $("#form1").submit(function(event) {
                event.preventDefault(); //prevent the form submission
                $.post("insert.php", $(this).serialize(),function(data){
                      // I am done. The page returned by insert_db.php is now in data
                } )
    
          });
    });
    
  • 0

    使你的js阻止提交的默认动作:

    $(function(){
      $("#form1").submit(function(e){
            e.preventDefault(); //prevent default
            $.post("insert.php", $(this).serialize(),function(data){
                  // I am done. The page returned by insert_db.php is now in data
            });
      });
    });
    

    并且您必须将 name="submit" 添加到输入提交标记:

    <input type="submit" name="submit" id="submit" value="Submit"/>
    

    并确保您的插入安全:

    <?php
    require_once('Connections/connect.php');
    if (isset($_POST['submit'])){      
       include 'connections/connect.php';
       $fname=mysql_real_escape_string($_POST['fname']);
       $lname=mysql_real_escape_string($_POST['lname']);                   
    
       mysql_query("INSERT INTO users(fname,lname) VALUES ('".$fname.",'".$lname."')"); 
    }
    ?>
    

    我建议你不再使用 mysql_* ,因为它已被弃用,很快就会在PHP的最新版本中删除

  • 0

    if (isset($_POST['submit'])) 正在寻找名为 submit 的输入 .

    将按钮更新为以下内容...

    <td><input type="submit" name="submit" id="submit" value="Submit" /></td>

  • 1

    检查您的控制台以验证数据是否正在传递给正确的Url . 您也没有在代码中的任何位置使用此变量$ database_connect . 您需要选择正确的数据库 .

  • 0

    在输入类型中缺少提交名称 . 没有它,你的代码将不会在 if (isset($_POST['submit'])) 后进一步移动

相关问题