传递获取值时,javascript if语句不起作用

时间:2015-04-16 18:11:03

标签: javascript php

我正在使用以下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';
     }
   }

2 个答案:

答案 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;

**使用** &amp;

的新代码
var url = "editForm.php?Name=" + name + "&amp;newName=" + newName + "&amp;newDescription=" + description + "&amp;newPrice=" + price + "&amp;newQuantity=" + quantity;