下拉列表值更改时 PHP 更新文本框

标签 php mysql ajax

我用数据库中的数据填充了下拉菜单。我可以在这里选择产品的名称。我的页面上有第二个文本框。在这里我想显示所选产品的价格。我尝试了不同的方法,但我没有成功。

首先这是我的下拉菜单,其中显示了产品名称:

    <?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "database";

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

$sql = "SELECT * FROM form";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
     echo "<select class='form-control select2' id='product1' name='product1' style='width: 100%;'>";
     echo "<option selected disabled hidden value=''></option>";
     // output data of each row
     while($row = $result->fetch_assoc()) {
                      echo "<option onchange='OnChange()' value='" . $row["id"]. "'>" . $row["name"]. "</option>";
     }                   
echo "</select>";
} else {
     echo "0 results";
}

$conn->close();

?>

我想在此文本框中显示所选值的价格:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "dbsi";

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

$sql = "SELECT price FROM form WHERE id='". $product1 ."'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
     // output data of each row
     while($row = $result->fetch_assoc()) {

              echo "<input type='text' class='form-control' name='price1' id='price1' onkeyup='getValues()' value='" . $row["price1"]. "'>";


     }                   
} else {
     echo "0 results";
}

$conn->close();

?>  

使用这个脚本,我在 price1 中只得到“0 个结果”。当我更改下拉菜单的选定值时,它不会更新。当我在下拉菜单中选择另一个值时,如何确保 price1 得到更新?

更新 1: 我尝试添加以下脚本

<script>
function OnChange(){
  UpdatePoints(<?php echo $price1; ?>);
}
echo "<script type='text/javascript'> window.onchange=load; </script>";
</script>

当我使用这个脚本时,我仍然得到“0 个结果”

更新 2: 以下仍然无效:

//filename: test.php
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "database";

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

$sql = "SELECT * FROM forms";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
     echo "<select class='form-control select2' id='product1' name='product1' onChange='getstate(this.value);' style='width: 100%;'>";
     echo "<option selected disabled hidden value=''></option>";
     // output data of each row
     while($row = $result->fetch_assoc()) {
                      echo "<option value='" . $row["id"]. "'>" . $row["name"]. "</option>";
     }                   
echo "</select>";
} else {
     echo "0 results";
}

$conn->close();

?>

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "database";

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

$sql = "SELECT * FROM forms WHERE id='". $product1 ."'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
     // output data of each row
     while($row = $result->fetch_assoc()) {

          echo "<div id='price-list'>";
              echo "<input type='text' class='form-control' name='price1' id='price1' value='" . $row["price"]. "'>";
          echo "</div>";

     }                   
} else {
     echo "0 results";
}

$conn->close();

?>  

<script>
         function getprice(val) {
            $.ajax({
              type: "POST",
              url: "test.php",
              data:'id='+val,
              success: function(data){
                $("#price-list").html(data);
              }
            });
          }
</script>

<?php
$product1=$_POST['price1'];
?>

最佳答案

make a ajax call and get the value of using post   

 <script>
         function getprice(val) {
            $.ajax({
              type: "POST",
              url: "index.php",
              data:'priceid='+val,
              success: function(data){
                $("#price-list").html(data);
              }
            });
          }
    </script>

    <select class='form-control select2' id='product1' name='product1' style='width: 100%;'  onChange="getstate(this.value);">
    //yourcode
    </select>

    <div id="price-list">
    </div>



index.php
<?php
$product1=$_POST['priceid'];
?>

关于下拉列表值更改时 PHP 更新文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35497341/

相关文章:

javascript - jquery ajax 发布被取消

php-mysql count() 查询重复结果

mysql - 我应该避免建立 MySQL 连接(使用 Memcache 时)还是无论如何都要建立连接?

mysql - "INSERT INTO .. ON DUPLICATE KEY UPDATE"只插入新条目而不替换?

mysql - 使用 SQL 从同一个表中的两行中选择

java - 为什么 AJAX 调用成功后 servlet 不转发?

javascript - 如何使用当前数据提交 jQuery 表单的克隆?

javascript - 最后使用当前域重定向 - Wordpress 插件

php - 如何使用 CakePHP 3.4 输出自定义 HTTP 正文内容?回显导致 "Unable to emit headers"错误

php - Symfony2 安全中的重定向死循环