首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Javascript输入没有存储在数据库中的数据?

使用Javascript输入没有存储在数据库中的数据?
EN

Stack Overflow用户
提问于 2015-08-07 04:02:40
回答 1查看 82关注 0票数 0

在PHP的HTML块中,PHP页面中有一个表。下面是表的代码。

代码语言:javascript
复制
<form enctype="application/x-www-form-urlencoded">
<table width="200" border="1">
  <tr>
    <td>Product</td>
    <td>Promotional Price</td>
    <td>Regular Price</td>
    <td>Stacking</td>
  </tr>
  <tr>
    <td><input type="text" id="product"></td>
    <td><input type="text" id="pp1"></td>
    <td><input type="text" id="rp1"></td>
    <td><input type="text" id="stacking"></td>
  </tr>
</table>
<div id ="div1">
<input type="button"  value="Submit"  onClick="PostData();"/><br/>
</div>
</form> 

将其发送到另一个PHP的Javascript如下所示。

代码语言:javascript
复制
<script type="text/javascript">
function PostData() {




    // 1. Create XHR instance - Start
    var xhr;
    if (window.XMLHttpRequest) {
        xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        xhr = new ActiveXObject("Msxml2.XMLHTTP");
    }
    else {
        throw new Error("Ajax is not supported by this browser");
    }
    // 1. Create XHR instance - End

    // 2. Define what to do when XHR feed you the response from the server - Start
    xhr.onreadystatechange = function () {
        if (xhr.readyState === 4) {
            if (xhr.status == 200 && xhr.status < 300) {
                document.getElementById('div1').innerHTML = xhr.responseText;
            }
        }
    }
    // 2. Define what to do when XHR feed you the response from the server - Start
    var product = document.getElementById("product").value;
    var pp1 = document.getElementById("pp1").value;
    var rp1 = document.getElementById("rp1").value;
    var stacking = document.getElementById("stacking").value;

    // var image = document.getElementById("image").value;
    // 3. Specify your action, location and Send to the server - Start
xhr.open('POST', 'report.php');
    //xhr.open('POST', 'config.php');
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send("product=" + product + "pp1=" + pp1 + "rp1=" + rp1 + "stacking=" + stacking);
}

</script>

将值存储到数据库的PHP如下所示。

代码语言:javascript
复制
    <?php  
    //Updated after the answer from AnikIslam
    $servername = "localhost";
$username = "root";
$password = "";
$dbname = "testing";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "INSERT INTO tbl_report (product,pp1, rp1,stacking) VALUES ('$product', '$pp1', '$rp1','$stacking')";

if ($conn->query($sql) === TRUE) {
    echo "Successful";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}
    ?>

从截图中可以看到,我有两个街区可以输入数据。现在,数据只从第一个块输入到数据库中。我希望将数据从第二个块存储到数据库中的第二个行。如何实现这一目标。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-07 04:24:34

试着像这样

代码语言:javascript
复制
 xhr.send("product=" + product + "&pp1=" + pp1 + "&rp1=" + rp1 + "&stacking=" + stacking);

用于Php部件

代码语言:javascript
复制
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "testing";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "INSERT INTO tbl_report (product,pp1, rp1,stacking) VALUES ('$product', '$pp1', '$rp1','$stacking')";

if ($conn->query($sql) === TRUE) {
    echo "Successful";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

编辑

每个表单都应该有唯一的id

在submit按钮中传递块名

像这样

第一区块

代码语言:javascript
复制
onClick="PostData('Block1');"

第二区块

代码语言:javascript
复制
onClick="PostData('Block2');"

JS

代码语言:javascript
复制
function PostData(block){



  if(block==="Block1"){
     // fetech data from block1
  }
  else if(block==="Block2"){
     // fetech data from block2
  }

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31869515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档