我正在使用以下javascript,表单和php。如果我使用action="editForm.php"
运行表单,php和表单工作正常,但是当我运行javascript时它只会更改名称。
javascript:
function updateProduct(){
var xmlhttp = new XMLHttpRequest();
var name = document.getElementById("originalName").value;
var newName = document.getElementById("newName").value;
var description = document.getElementById("newDescription").value;
var price = document.getElementById("newPrice").value;
var quantity = document.getElementById("newQuantity").value;
if(name != "" && (newName != "" || description !="" || price !="" || quantity !="")){
var url = "editForm.php?Name=" + name + "&newName=" + newName + "&newDescription" + description + "&newPrice" + price + "&newQuantity" + quantity;
xmlhttp.open("GET", url, false);
xmlhttp.send();
}
}
submitButton = document.getElementById("editButton");
submitButton.addEventListener("click", updateProduct);
当运行此js并输入原始名称和新名称时,名称会更改,但是如果我输入名称和任何其他值,则没有任何更改,是否有人知道这是为什么?
形式:
<form id="dataForm">
<h2 id="formheader"> Update Name</h2>
<div>
<label>Product Name:</label>
<input class="inputForm" id="originalName" type="text" name="Name">
</div>
<div>
<label>New Name:</label>
<input class="inputForm" id="newName" type="text" name="newName">
</div>
<div>
<label>New Description:</label>
<input class="inputForm" id="newDescription" type="text" name="newDescription">
</div>
<div>
<label>New Price:</label>
<input class="inputForm" id="newPrice" type="text" name="newPrice">
</div>
<div>
<label>New Quantity:</label>
<input class="inputForm" id="newQuantity" type="text" name="newQuantity">
</div>
</div>
<div id="theSubmit">
<button id="editButton">Submit</button>
</div>
</form>
php:
$name = $_GET['Name'];
$newName = $_GET['newName'];
$description = $_GET['newDescription'];
$price = $_GET['newPrice'];
$newQuant = $_GET['newQuantity'];
if ($name !="" && $newName !=""){
$sql = "UPDATE PRODUCTS SET P_NAME = '$newName' WHERE P_NAME = '$name'";
$conn->exec($sql);
echo 'name was run';
}
if($name !="" && $description !=""){
$sql = "UPDATE PRODUCTS SET P_Description = '$description' WHERE P_NAME = '$name'";
$conn->exec($sql);
echo 'des worked';
}
if($name !="" && $price !=""){
$sql = "UPDATE PRODUCTS SET P_Price = '$price' WHERE P_NAME = '$name'";
$conn->exec($sql);
echo 'price worked';
}
if ($name !="" && $newQuant!=""){
$sql = "UPDATE PRODUCTS SET P_Quantity = '$newQuant' WHERE P_NAME = '$name'";
$conn->exec($sql);
echo 'quant worked';
}
}
答案 0 :(得分:1)
尝试更改:
var url = "editForm.php?Name=" + name + "&newName=" + newName + "&newDescription" + description + "&newPrice" + price + "&newQuantity" + quantity;
为:
var url = "editForm.php?Name=" + name + "&newName=" + newName + "&newDescription=" + description + "&newPrice=" + price + "&newQuantity=" + quantity;
答案 1 :(得分:0)
你应该转义你网址中的参数
<强>问题强>
var url = "editForm.php?Name=" + name + "&newName=" + newName + "&newDescription" + description + "&newPrice" + price + "&newQuantity" + quantity;
**使用** &
var url = "editForm.php?Name=" + name + "&newName=" + newName + "&newDescription=" + description + "&newPrice=" + price + "&newQuantity=" + quantity;