当我使用 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/