2015-06-05 4 views
0

У меня есть список продуктов, которые нужно заказать, и я хочу, чтобы поле «на заказ» было «минимальным» минусом «акции» всякий раз, когда «фондовый» изменяется, но работает только последний вход. Для остальных из них onchange не работает.mysqli_fetch_array -> обновление ввода на основе двух полей ввода

$result_producten = mysqli_query($conn, 
           "SELECT * FROM producten " 
            ."WHERE lev_id = '".$sql_result2['id']."'" 
           ); 

    <table width="600" border="1" cellpadding"1" cellspacing= "1" class="flatTable"> 
     <tr class="headingTr"> 
      <th>Suppliercode</th> 
      <th>Product</th> 
      <th>Stock</th> 
      <th>Minimum</th> 
      <th>To order</th> 
     </tr> 
    <?php 
     while ($producten=mysqli_fetch_assoc($result_producten)) { 
      echo "<tr>"; 
      echo "<td>".$producten['lev_id']."</td>"; 
      echo "<td>".$producten['productnaam']."</td>"; 
      echo "<td> 
        <input id='test' name='".$producten['id']."' 
         type='text' onchange='myFunction(this.value)' 
         onkeypress='return event.charCode >= 48 && event.charCode <= 57' 
        /> 
        </td>"; 
      echo "<td>".$producten['minimum']."</td>"; 
      echo "<td> 
        <input id='".$producten['id']."' name='mytext' 
         type='text' readonly='true' /> 
        </td>"; 
      echo "</tr>"; 
?> 
<script> 
function myFunction(val) { 
    var elem = document.getElementById('<?php echo $producten['id']; ?>'); 
elem.value = val; 


} 
</script> 
<?php 
     } 

?> 
    </table> 

Тогда я хочу, чтобы создать форму, которая содержит все продукты, которые имеют «Для того»> 0.

Как я могу получить onchange работает для каждого продукта, и как я могу создать эту форму один раз «запас» помещается для всех продуктов?

+1

Я не вижу, где вы используете 'mysqli_fetch_array()' –

+0

@JayBlanchard "а ($ = mysqli_fetch_assoc продукция ($ result_producten))" – DevNiels

+1

One является 'fetch_array' один' fetch_assoc'. –

ответ

0

Похоже, вы печатаете myFunction несколько раз. Попробуйте сделать это вместо:

while(){ 
    // bunch of code 
echo "<td> 
     <input id='test' name='".$producten['id']."' type='text' 
    //notice the difference in the onchange code 
      onchange='myFunction(this.value,this.name)' 
      onkeypress='return event.charCode >= 48 && event.charCode <= 57'/> 
        </td>"; 
    //more code 
} 

затем НИЖЕ while:

<script> 
function myFunction(val,id){ 
    document.getElementById(id).value = val; 
} 
</script> 

Что касается создания формы на основе входов с акциями> 0, то вам нужно отправить форму (обернуть таблицу в форме) и на стороне PHP, получите все представленные значения и постройте массив идентификаторов продуктов, чтобы они отображались на следующей странице. Затем сделать запрос MySQL, как:

SELECT * FROM producten WHERE product_id IN (1,5,86,19457,376) 

где 1,5,86,19457,376 ваши идентификаторы продукта для поиска. Затем пропустите результаты и покажите продукты, как вы хотите. Кроме того, для этого вам нужно будет изменить имена ввода на что-то вроде <input name="mytext[]">, которое будет передавать массив ваших значений под $_POST['mytext']. Возможно, вы захотите использовать другой ввод с идентификатором продукта или что-то для отправки вместе с mytext.

+0

Спасибо большое! Его работа сейчас. Остался еще один вопрос. Как создать форму (например, с помощью действия формы или ввода базы данных) с обзором всех продуктов, которые вы установили значение> 0. Итак, как только я нажимаю кнопку отправки, я хочу, чтобы следующая страница показывала все где значение входа «Для заказа» больше нуля. Спасибо за повторный ответ (:! –

+0

@StanvanderAvoird, я обновил свой ответ, чтобы включить некоторую информацию о создании формы. – Jakar

+0

Спасибо за ваш ответ еще раз. Вы сказали: 'вам нужно будет отправить форму (оберните свою таблицу в form) '. Ну, это моя проблема. Я не знаю, как отправить форму, используя функцию WHILE.Пожалуйста, смотрите этот конкретный вопрос, написанный здесь: http://stackoverflow.com/questions/30682237/create-an-overview-form-from-the-products-that-were-ordered Спасибо большое (: –