Javascript 没有将值传递到我的 php 代码中运行

标签 javascript php

当我使用 action="addCustomer.php" 运行表单和 sql 时,它工作正常,但是当我使用 js 时,数据没有传递,并且我没有收到错误控制台显示它正在从原始页面获取时间线中的变量,但 js 却没有?谁能明白为什么吗?

我使用以下表格:

  <form id="dataForm" method="GET">
  <div>
    <h2 id="formheader">Add Order Details:</h2>
    <label>First Name:</label>
    <input class="inputForm" id="inputFirstName" type="text" name="firstname">
  </div>
  <div>
    <label>Last Name:</label>
    <input class="inputForm" id="inputLastName"  type="text" name="lastname">
  </div>
  <div>
    <label>Address:  </label>
    <input class="inputForm" id="inputAdress" type="text" name="address">
  </div>
  <div>
    <label>Post Code:</label>
    <input class="inputForm" id="inputPostcode" type="text" name="postcode">
  </div>
  <div>
  <section class="inputForm">
  <label>Delievery Type:</label>
  <select name="deliverytype">
  <option ="3-5 Days">3-5 Days</option>
  <option ="Next Day">Next Day</option>
  </select> 
  </section> 
  <input type="hidden" id="calc" value="" name="calc">
  </div>
  <div id="theSubmit">
      <button id="checkoutButton">Submit</button>
    </div>
  </form>

以及以下 js 代码:

function addCustomer(){
  var xmlhttp = new XMLHttpRequest();
  var firstName = document.getElementById("inputFirstName").value;
  var lastName = document.getElementById("inputLastName").value;
  var address = document.getElementById("inputAdress").value;
  var postcode = document.getElementById("inputPostcode").value;
  var delievery = document.getElementById("deliverytype").value;
  if(firstName != "" && lastName != "" && address !="" && postcode !=""){
    var url = "addCustomer.php?FIRSTNAME=" + firstName + "&LASTNAME=" + lastName + "&ADDRESS=" + address + "&POST_CODE=" + postcode + "&DELIVERY_TYPE=" + delievery;

    xmlhttp.open("GET", url, false);
    xmlhttp.send();
     }
   else{
    alert("enter Some Data");
   }
}

submitButton = document.getElementById("checkoutButton");
submitButton.addEventListener("click", addCustomer);

以及以下 php sql 代码:

$name = $_GET['firstname'];
     $lastname = $_GET['lastname'];
     $userAddress = $_GET['address'];
     $userPostCode = $_GET['postcode'];
     $delivery = $_GET['deliverytype'];
     $totalCost = $_GET['calc'];

     if($name !="" && $lastname !="" && $userAddress !="" && $userPostCode !="" ){
     $sql = "INSERT INTO USERS (FIRSTNAME, SECONDNAME, ADDRESS, POST_CODE, DELIVERY_TYPE) VALUES ('$name', '$lastname', '$userAddress', '$userPostCode', '$delivery') ";
     $conn->exec($sql);
     echo "worked";
     }

最佳答案

尝试以小写形式发送变量:

var url = "addcustomer.php?firstname=" + firstName + "&lastname=" + lastName + "&address=" + address + "&post_code=" + postcode + "&delivery_type=" + delievery;

无论您以何种方式发送变量,任何更改都应该发生在数据库中,而不是浏览器的控制台日志中 请阅读 SQL Injection ...

关于Javascript 没有将值传递到我的 php 代码中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29701935/

相关文章:

Javascript 构造函数创建对象与常规对象

php - Eloquent/SQL - 获取查询的行号(排名)

javascript - 无法访问从谷歌距离矩阵函数派生的变量值

javascript - 在 TypeScript 中获取表格行索引和行数据

javascript - 长轮询 - jquery + php

php - Thread对象和Worker对象有什么区别(php pthreads)

php - MySQL Joins - 遍历所有类别和输出项

javascript - Jquery 到 javascript 按键事件

php - PHP 中的微秒

php - 保护表单免受可编写脚本的垃圾邮件攻击