2014-03-04 94 views
-2

我是新來的PHP,我正在開發一個使用PHP的Web應用程序。有一個選擇框和按鈕。當我從'數量'選擇框中選擇一個值時,它應該相應地更改總值。但只有在點擊「結帳」按鈕後,變化纔會發生,爲什麼會發生這種情況?即使我按下'F5'按鈕,它不會改變。只有當我按下按鈕。請幫幫我。當按鈕被點擊時發生了什麼php

這裏是圖像:enter image description here

選擇框代碼和總值變更的代碼;

echo "<tr>"; 
      echo "<td width = '55%'>"; 
      echo $NAME[$i]; 
      echo "</td>"; 

      echo "<td width = '15%'>"; 
      echo $PRICE[$i]; 
      echo "</td>"; 

      echo "<td width = '15%' align = 'center'>"; 
      echo "<select name='leDate1' class='textBox' id='leDate1' onchange='getvalue(this.value)'>"; 

           $id = $_SESSION['ItemId']; 
           $result = mysql_query("SELECT Quantity FROM itemcategory WHERE ItemId = '$id'"); 

           $quantity = ""; 
           while($row = mysql_fetch_assoc($result)) 
           { 
            $quantity = $row['Quantity']; 
           } 
           $title = $_SESSION['selected_option']; 
           echo "<option selected=\"true\" style=\"display:none;\">$title</option>"; 

           for($j = 1; $j <= $quantity; $j++){ 
            echo "<option value=\"$j\">$j</option>"; 
           } 

          echo "</select>"; 

      echo "</td>"; 
          echo "<td width = '15%'>"; 
      echo $PRICE[$i]*$_SESSION['selected_option']; 
      echo "</td>"; 
     echo "</tr>"; 
     } 
     echo "</table>"; 
     echo "</form>"; 

從選擇框使用此我得到選擇的值:

if (isset($_REQUEST['leDate1'])) { 
     $_SESSION['selected_option'] = $_POST["leDate1"]; 
    } 

注: 下面是代碼實現上述問題:

$FormName = "form2";         
echo '<script language="javascript">'; 
echo 'function run(){'; 
echo 'document.'.$FormName.'.submit();'; 
echo '}'; 
echo '</script>'; 
+2

沒有人能回答你的問題,除非你發佈你的代碼 – ChicagoRedSox

+0

認真?你是否期待一個'abracadabra ..你出錯的地方!'? –

+0

你需要JavaScript來執行你想要的(我認爲),閱讀客戶端代碼和服務器端代碼之間的區別 –

回答

0

但變化只有在點擊「結賬」按鈕後纔會發生這種情況,爲什麼會發生這種情況?

  1. 提交按鈕將提交表單。
  2. 提交表單的過程將從表單獲取所有用戶輸入並用它構造HTTP請求。
  3. Web服務器和PHP將處理該HTTP請求並生成響應。
  4. 該響應將被髮送到瀏覽器。
  5. 然後瀏覽器將呈現它。

即使我按'F5'按鈕,它不會改變。

這將導致瀏覽器重複最後請求,而不是創建一個新的新的用戶輸入。

當我從'數量'選擇框中選擇一個值時,它應該相應地更改總值。

然後,你需要使用JavaScript或者:

  • 複製的PHP的功能,當用戶輸入改變
  • 提交表單當用戶輸入改變
  • 構造一個HTTP請求在後臺發送(例如使用XMLHttpRequest)並操縱DOM將數據插入到響應中。
+0

感謝您的解釋。我已經通過javascript實現了我的問題。 –