2015-03-19 2 views
-1

Итак, что я хочу сделать, так это то, что пользователь выбирает две даты из двух входов, а javascript вычисляет дни и печатает их на другие текстовые поля. Теперь эта часть работает, но я также хочу использовать $ _POST ['pris'] для вычисления общей цены в зависимости от количества дней и печати новой цены в другое текстовое поле.Как я могу вернуть два значения javascript в два разных текстовых поля HTML

вот форма, которую я пытаюсь чтобы как получить данные и отправлять данные в с выше Javascript:

function leibil(){ 

$reg = $_POST['reg']; 
$bruker = $_POST['bruker']; 
$pris = $_POST['pris']; 

    echo" <center><h3>Fyll ut utleieskjema </h3></center><hr/> 
    <form method='POST' action='registrerbilutleie.php'> 
    Lei fra:<br/> 
    <input type='date' class='textbox' id='leifra' name='leifra' required onchange='cal()'><br/> 
    Lei til:<br/> 
    <input type='date' class='textbox' id='leitil' name='leitil' required onchange='cal()'><br/> 
    Leveringssted:<br/> 
    <select name='levsted'> 
    <option value='Alle'>Alle</option> 
    <option value='Oslo'>Oslo</option> 
    <option value='Bergen'>Bergen</option> 
    <option value='Drammen'>Drammen</option> 
    <option value='Trondheim'>Trondheim</option> 
    <option value='Lillehammer'>Lillehammer</option> 
    </select><br/> 
    RegNr:<br/> 
    <input type='text' name='reg' value='$reg'><br/> 
    BrukerID:<br/> 
    <input type='text' name='bruker' value='$bruker'><br/> 
    Dager:<br/> 
    <input type='text' class='textbox' name='dager' id='antalldager' disabled='disabled'><br/> 
    Total Pris:<br/> 
    <input type='hidden' name='pris' id='oldpris' value='$pris'> 
    <input type='text' class='textbox' name='totpris' id='totpris'><br/> 
    <input type='submit'> 
</form>"; 
} 

Вот файл PHP я имеет функцию для формы в:

<?php 
session_start(); 

include_once ("hjelpefunksjoner.php"); 
?> 

<!doctype html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Søkeresultat| Oppgave - Database & web </title> 
    <link href="style.css" rel="stylesheet" type="text/css"> 
    <script type="text/javascript"> 
    function Dager(){ 
       var fra = new Date(document.getElementById("leifra").value); 
       var til = new Date(document.getElementById("leitil").value); 
       return parseInt((til - fra)/(24 * 3600 * 1000)); 
     }; 

     function cal(){ 
     if(document.getElementById("leifra")){ 
      document.getElementById("antalldager").value=Dager(); 
     } 
    }; 
    function pris(){ 
    var dager = Number(document.getElementById("antalldager").value); 
    var pris = Number(document.getElementById("oldpris").value); 
    var nypris = (antalldager * pris); 
    document.getElementById('totpris').value = nypris; 
     return nypris; 
    }; 

    </script> 
</head> 
<body> 
    <div id="top">Prosjektoppgave - Database og Web Vår 2015</div> 
    <div id="menu"> 
     <ul> 
      <li><a href="index.php">Hjem</a></li> 
      <li><a href="members.html">Medlemmer</a></li> 
      <li><a href="beskrivelse.html">Beskrivelse</a></li> 
      <li><a href="sqlscript.html">SQL-Script</a></li> 
     </ul> 
    </div> 
    <div id="hoved"> 
          <?php 
          echo"<h1>Du har valgt: " . $_POST['makeAndModel'] . "</h1>"; 
          status(); 
          ?>  
<hr/> 

       <div id="leibilboks"> 

       <?php 
       leibil(); 
       ?> 
       </div> 

      <div id="valgtbil"> 
      <?php 
      VisLeieBil(); 
      ?> 


      </div> 


</div> 
    </div> 
</body> 
</html> 
+0

Так какая часть не работает? Кстати, вы должны приложить эти сценарии php с помощью . –

+0

Я не могу получить его для расчета нового приза на основе Дней * Цена –

+0

Вы хотите вернуть '(antalldager * pris)'? Эта строка 'var nypris = (antalldager * pris);' ничего не делает, потому что вы возвращаете элемент DOM (который вы ничего не делали) заранее. Также я уверен, что нет объекта 'Int', вместо этого используйте' Number'. –

ответ

1

Похоже, есть проблема здесь:

function pris(){ 
    var dager = new Int(document.getElementById("antalldager").value); 
    var pris = new Int(document.getElementById("oldpris").value) 
    return document.getElementById('totpris'); 
    var nypris = (antalldager * pris); 
}; 

Прежде всего обратите внимание, что кроме Int вы хотите использовать Number, или вы можете сделать parseInt() на них. Также обратите внимание, что вы можете отказаться от new, который я бы рекомендовал делать (наличие new делает его объектом-оболочкой, что, вероятно, не то, что вы хотите). Затем вы захотите вернуть значение nypris и, похоже, вы хотите, чтобы это значение было новым значением для вашего элемента totpris. Поэтому я покажу вам, как это сделать:

function pris(){ 
    // Change from 'Int' to 'Number' 
    var dager = Number(document.getElementById("antalldager").value); 
    var pris = Number(document.getElementById("oldpris").value); 

    // Calculate the value first 
    var nypris = (antalldager * pris);  

    // Set the value to the element 
    document.getElementById('totpris').value = nypris; 

    // return the value 
    return nypris; 
}; 
+0

К сожалению, это не сработало:/ –

+0

Правильны ли значения 'dager' и' pris'? Попробуйте сделать 'console.log()' на них и проверить консоль на наличие ошибок. Также работает функция? –

+0

Я добавлю все файлы, и вы можете увидеть –

Смежные вопросы