2017-10-09 64 views
-4

我仍然從頭學習。 我想根據用戶如何回答上一條記錄來輸入文字。HTML PHP使用帶有IF語句的輸入類型?

因此,根據他們選擇的選項...我想在我的「狀態」記錄下輸入狀態。

換句話說,如果用戶在下拉列表中選擇2,我希望狀態(輸入隱藏)填充單詞「打開」。 如果用戶選擇-2,id等狀態將填充「已關閉」

到目前爲止只有基本的。

<input type="hidden" name="status" value="Open"> 

我的問題是我如何實現即時通訊嘗試實現,因爲我失去了。

目前正在

$status = $_POST['status']; 
$result = $_POST['result']; 
$result = $_POST['result'] ?? 0; 
     $statuses = [ 
     '-3' => 'Closed', 
     '-2' => 'Closed', 
     '1' => 'Open', 
     '2' => 'Big', 
     '3' => 'Bigger', 
      ]; 
      $status = $statuses[$result]; 

在我的PHP部分之上我的查詢..

   <select name="result"> 
        <option value="-3">-3</option> 
        <option value="-2">-2</option> 
        <option value="-1">-1</option> 
        <option value="1">1</option> 
        <option value="2">2</option> 
        <option value="3">3</option> 
       </select> 
+0

什麼是你的問題? –

+0

[根據下拉選擇從數據庫填充另一個選擇下拉列表]的可能重複(https://stackoverflow.com/questions/11636293/populate-another-select-dropdown-from-database-based-on-dropdown-selection) –

+0

更新它。 任何幫助將有所幫助! – CarlosDanger

回答

0

你可以用PHP或JS做到這一點。

更新您的HTML所以有值,例如:

<select name="result"> 
    <option value="-3">-3</option> 

PHP

用戶選擇result並提交表單。然後:

<?php 
$result = $_POST['result'] ?? 0; 
$statuses = [ 
    ... 
    '-2' => 'Closed', 
    '2' => 'Open', 
]; 
$status = $statuses[$result]; 
// and save to Database 

JS/jQuery的

$(document).on('change', 'input[name=result]', function(){ 
    var val = $(this).val(); 
    if (val == -2){ 
     $('input[name=status]').val('Closed'); 
    } 
    if (val == 2){ 
     $('input[name=status]').val('Open'); 
    } 
}); 
+0

太棒了!讓我快速測試! – CarlosDanger

+0

好吧,我有_____ $ status = $ _POST ['status']; ____和____ $ result = $ _POST ['result']; ________我有INSERT INTO查詢,狀態將進入$狀態,並且結果將進入$ result ...結果與我上面的選項聲明一起工作良好。 – CarlosDanger

+0

好吧,我更新了我的原始帖子,顯然我很亂。 。我不應該在我的html部分再次做PHP? – CarlosDanger

0

也許我沒有正確認識這個問題,但我相信,這將使用Javascript比PHP得到更好的解決。原因在於,由於PHP是服務器端語言,因此必須先提交表單,然後才能更改輸入內容(除非您使用的是AJAX,它將是PHP和Javascript的組合)。

Javascript是一種客戶端語言,可以做你正在尋找的東西。使用jQuery:

$("select[name='result']").on('change', function() { 
    var chosenOption = $("select[name='result'] option:selected").text(); 
    var newText = (chosenOption < 0) ? "Closed" : "Open"; 
    $("input[name='status']").val(newText); 
}); 

這裏,如果你想看到它是如何工作的jsfiddle鏈接: https://jsfiddle.net/turtlechief/b0z2fyfx/