AJAX传递值混乱

博士 马哈穆杜尔·哈桑·汗(Mahamudul Hasan Khan)

我正在寻找一种通过按钮提交数据的方法,以便将数据保存或更新到数据库中,而无需重新加载。现在可以更新和插入数据了。但是我已经使用dataString了javaScript变量。我以为通过这个dataString可变的发布数据就可以了。但是,当我从代码数据中删除该变量时,插入或更新仍然有效。那么数据的传递在这里如何工作。

post方法如何从这里的ajax调用中获取数据。

<html>
   <title>Registration</title>

<body>
    <?php
    $servername = "localhost";
    $username = "root";
    $password = "nopass";
    $dbname = "registration_project";

  // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
    ?>
    <div style="width:350px">
        <div style="float:left;width:40%">
            Id:<br/><br/>
            First Name:<br/><br/>
            Last Name:<br/><br/> 
            Age:<br/><br/>
        </div>
        <div style="float:left;width:60%">
            <form action="" method="post">
                <input type="number" id="id_id" name="id" value=<?php
                if (isset($_POST['id']))
                    echo $_POST['id'];
                ?>><br /><br />
                <input type="text" id="id_fname" name="fname" value=<?php
                if (isset($_POST['fname']))
                    echo $_POST['fname'];
                ?>><br /><br />
                <input type="text" id="id_lname" name="lname" value=<?php
                if (isset($_POST['lname']))
                    echo $_POST['lname'];
                ?>><br /><br />
                <input type="number" id="id_age" name="age" value=<?php
                if (isset($_POST['age']))
                    echo $_POST['age'];
                ?>><br /><br />
                <input type="submit" id="id_submit" name="submit">
            </form>
        </div>
    </div>
    <script src="js/jquery-1.11.3.js"></script>
  </body>
</html>
<?php
if (isset($_POST['id']))
 echo $_POST['id'] . "<br/><br/>";
if (isset($_POST['fname']))
 echo $_POST['fname'] . "<br/><br/>";
if (isset($_POST['lname']))
 echo $_POST['lname'] . "<br/><br/>";
if (isset($_POST['age']))
 echo $_POST['age'] . "<br/><br/>";
?>

<?php
if (isset($_POST['submit'])) {
   $fname = $_POST['fname'];
   $lname = $_POST['lname'];
   $age = $_POST['age'];
   $sql = "select max(id) from registration";
   $result = $conn->query($sql);
    if ($result->num_rows > 0) {
    // output data of each row
     while ($row = $result->fetch_assoc()) {
        $id = $row["max(id)"];
     }
   } else {
    echo "0 results";
   }

   if ($id==$_POST['id']) {
     $id = $_POST['id'];
     $sql = "update registration set firstName='$fname', lastName='$lname',             age=$age where id=$id";
     mysqli_query($conn, $sql);
} else {
    $id=$_POST['id'];
    $sql = "Insert into registration(id,firstName,lastName,age) values($id,'$fname','$lname',$age)";
    mysqli_query($conn, $sql);
 }
}
mysqli_close($conn);
?>
<script>
    $("#id_submit").click(function(e) {
 var id = $("#id_id").val();
 var fname = $("#id_fname").val(); 
 var lname = $("#id_lname").val();
 var age = $("#id_age").val();
 var dataString = "id="+id+ '&fname='+fname+'&lname='+lname+'&age='+age;
 //console.log(dataString);
 $.ajax({
 type:'POST',
 data:dataString,
 url:'Registration.php',
 success:function(data) {

    }
  });
 });
</script>
巴尔玛

您的点击处理程序中没有e.preventDefault()因此,在发送AJAX调用后,该表单也将正常提交。因此,即使您不填写dataString,数据库也会从表单中更新。

要使其仅使用AJAX,请致电e.preventDefault()您还需要为submit参数提交一个值,因为PHP代码用于if(isset($_POST['submit']))知道是否应处理表单参数。

$("#id_submit").click(function(e) {
    e.preventDefault();
    var id = $("#id_id").val();
    var fname = $("#id_fname").val(); 
    var lname = $("#id_lname").val();
    var age = $("#id_age").val();
    var dataString = "submit=submit&id="+id+ '&fname='+fname+'&lname='+lname+'&age='+age;
    //console.log(dataString);
    $.ajax({
        type:'POST',
        data:dataString,
        url:'Registration.php',
        success:function(data) {

        }
    });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用JQuery AJAX将值传递给PHP无效,数组混乱

来自分类Dev

AJAX传递值混淆

来自分类Dev

Ajax,传递已编码的值

来自分类Dev

使用ajax传递#值不起作用

来自分类Dev

如何使用AJAX GET传递php值

来自分类Dev

在ajax中传递复选框值

来自分类Dev

jQuery Ajax不传递多个值

来自分类Dev

通过Ajax传递单击的提交按钮值

来自分类Dev

通过@ Ajax.ActionLink传递id的值

来自分类Dev

AJAX不会将值传递给PHP

来自分类Dev

基本变量传递混乱

来自分类Dev

Ajax通话混乱

来自分类Dev

Ajax GET请求混乱

来自分类Dev

AJAX中的时序混乱

来自分类Dev

Wordpress使用Wordpress将Ajax值传递到特定页面

来自分类Dev

我的Ajax没有将值传递到php页面

来自分类Dev

他是将值传递给Ajax的最安全的方法

来自分类Dev

如何将值从href链接传递给ajax函数

来自分类Dev

jQuery将表行值传递给Ajax发布请求

来自分类Dev

如何将PHP传递的值连接到AJAX?

来自分类Dev

在jQuery中将点击(this)的值传递给ajax成功

来自分类Dev

php,将ajax传递的值添加到变量

来自分类Dev

从通过ajax请求传递的jquery对象获取特定值

来自分类Dev

使用ajax将DropDrownList中的值传递给Controller

来自分类Dev

使用AJAX通过GET传递唯一值

来自分类Dev

使用Ajax将<p:inputText>值传递给Bean

来自分类Dev

通过AJAX将表单值传递给php

来自分类Dev

将ajax表单值传递给控制器codeigniter

来自分类Dev

函数在ajax请求更改之前传递值