2016-02-19 2 views
1

Я заполнил свое раскрывающееся меню данными из базы данных. Я могу выбрать здесь название продукта. У меня есть второе текстовое поле на моей странице. Здесь я хочу показать цену выбранного продукта. Я пробовал разные способы, но я не понимаю, как это работает.PHP update textbox при изменении значения выпадающего списка

Прежде всего это мое выпадающее меню, где показано название продукта:

<?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(); 

?> 

Используя этот скрипт Я получаю только «0 результатов» в цене1. Он не обновляется, когда я изменяю выбранное значение выпадающего меню. Как я могу убедиться, что price1 обновляется, когда я выбираю другое значение в раскрывающемся меню?

Update 1: Я пытался добавить следующий сценарий,

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

Когда я использую этот скрипт я все еще получаю "0 результаты"

Update 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']; 
?> 
+0

Где вы указали '$ row [" price1 "]' index, вы не выбрали столбец с этим именем, может быть, вы имеете в виду только '$ row [" price "]', или это просто опечатка в некотором роде – Ghost

+0

и просто убедитесь, что на странице php есть правильная форма с кнопками отправки и т. д., а '$ product1' не определена во втором блоке кода. – Ghost

+0

Вы можете использовать ajax или javascript' on_load() 'для автоматической загрузки значения в текстовое поле, когда выпадающее меню изменится. – rhavendc

ответ

1
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']; 
?> 
+0

По-прежнему получать «0 результатов». См. «Обновление 2». – John

+0

что у вас есть усталый пост весь код, где вы делали ajax звонок –

+0

@John: PLS убедитесь, что $ sql = "SELECT * FROM forms WHERE id = '". $ product1. "'"; создает правильный А также не забудьте указать значение поля price1, если есть более одного – Sinto