为了账号安全,请及时绑定邮箱和手机立即绑定

尝试从文本框中获取数据并将其插入数据库

尝试从文本框中获取数据并将其插入数据库

PHP
POPMUISE 2021-11-13 16:05:53
我有一个用于输入信息和注册帐户的表格。在网站上输入信息,当按下“注册”按钮时,它会通过外部 JavaScript 方法进行验证,然后使用 ajax 调用 PHP 方法,该方法应从文本框中获取信息并将其输入到数据库中。我似乎无法让 PHP 获取信息。<?php$mysqli = new mysqli('localhost:8080', 'root', null, 'salmonhouse');/* check connection */if (mysqli_connect_errno()) {    printf("Connect failed: %s\n", mysqli_connect_error());    exit();}$sql = "INSERT INTO clients (name, surname, email, address, password)    VALUES (?,?,?,?,?)";$name = $_POST['name'];$surname = $_POST['surname'];$email= $_POST['email'];$address= $_POST['Address'];$pass= $_POST['Password'];$stmt = $mysqli->prepare($sql);$stmt->bind_param("sssss", $name, $surname, $email, $address, $pass);$stmt->execute();?>HTML 文本框<form class="quote">    <div class = inliner>        <label>Name</label>        <input id="name" type="text" placeholder="Name">    </div>    <div class = inliner>        <label>Surname</label>        <input id="surname" type="text" placeholder="Surname">    </div>    <div>        <label>Email</label><br>        <input id="email" type="email" placeholder="Email Address"><br>    </div>    <div>        <label>Address</label><br>        <input id="Address" type="email" placeholder="Home Address"><br>    </div>    <div class = inliner>        <label>Password</label>        <input id="Password" type="text" placeholder="Password">    </div>    <div class = inliner>        <label>Verify Password</label>        <input id="vPassword" type="text" placeholder="Password">    </div>    <br><button class="button_1" type="button" onclick="Validate()">Register</button></form>这个 PHP 文件是一个单独的文件,只有这个代码。我已经测试过,如果我手动设置变量而不是尝试检索它们,则数据会成功插入到数据库中。所以从我的测试来看,它只是检索不起作用。我也试过$_REQUEST['name']这是 ajax/xmlhttprequest 代码。xmlhttp = new XMLHttpRequest();var url = "asset/php/inserting.php";xmlhttp.open("POST",url,true);xmlhttp.send();
查看完整描述

2 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

您可以在ajax调用中附加变量,您需要在 php 页面中使用它&来分隔变量和=分配值 .i,e :


 //attaching values to pass

    var data = "name=" + name + "&email=" + email + "&surname=" + surname + "&Address=" + Address + "&Password=" + Password;

    if (window.XMLHttpRequest) {


      request = new XMLHttpRequest();

    } else if (window.ActiveXObject) {

      request = new ActiveXObject("Microsoft.XMLHTTP");

    }



    request.onreadystatechange = function() {

      if (this.readyState == 4 && this.status == 200) {

       //if success do something here 

  alert("save");

      }

    };


    var url = "asset/php/inserting.php";

    request.open("POST", url, true);

    //send data to php page

    request.send(data);


查看完整回答
反对 回复 2021-11-13
?
慕容3067478

TA贡献1773条经验 获得超3个赞

我的建议是使用 jQuery 库而不是 XMLHttpRequest。您需要在<head>HTML 部分包含一个<script>标签,以便从某些 CDN(内容交付网络)加载 jQuery 库。也添加id="f"到您的<form>标签。那么你的 Ajax 调用就可以很简单:


$.ajax({

    type: "POST",

    url: 'asset/php/inserting.php',

    data: $('#f').serialize(), // serializes the form's elements.

    success: function(msg)

    {

        alert(msg); // show response from the php script.

    }

});


查看完整回答
反对 回复 2021-11-13
  • 2 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信