簡體   English   中英

如何從字符串數組或csv中選擇字符串?

[英]How to select string from an array of strings or a csv?

我需要為一個俱樂部創建一個網站,該網站顯示下拉菜單中各項之間的關系。 例如,我們用剪刀石頭布。 數據將由.csv文件提供,例如以下.csv文件:

;           Stone;                      Scissors;                   Paper
Stone;      Nothing happens.;           Scissors get scattered.;    Paper wraps stone.
Scissors;   Stone scatters Scissors.;   Nothing happens.;           Paper gets cut.
Paper;      Stone gets wrapped.;        Scissors cut Paper.;        Nothing happens.

我需要閱讀.csv並生成select語句(第一行用於第一行,第二行用於第一列),其結果將是這樣(2x):

<b>Your Choice:</b>
<select id="yours" onchange="battle()">
<option style="display:none" disabled selected value> -- select an option -- 
</option>
<option>Stone</option>
<option>Scissors</option>
<option>Paper</option>
</select>

至此,我在.php中運行了所有這些文件(閱讀csv,生成下拉列表)。

現在,我不確定正確的Web開發方法:1.如何在pho腳本的輸出中存儲表,以便可以使用js進行干凈訪問? 2.如何從所述表中獲取值?

偽代碼的解決方案:

<script>

<my clean array data>

function battle() {
  var x = document.getElementById("yours").value;
  var y = document.getElementById("opponent").value;
  var result = array.select(mine = x, opponent = y)
  document.getElementById("result").innerHTML = result;
}
</script>

用表值設置一個javascript對象將是解決此問題的一種簡單方法。

在php中,您希望有一個具有此結構的數組,該數組是從CSV文件生成的,您可能已經具有此數組或類似的東西:

$a = [
    "Stone" => [
        "Stone" => "Nothing Happens.",
        "Scissors" => "Scissors get scattered (shattered?).",
        "Paper" => "Paper wraps stone."
    ],
    // ... "Scissors" and "Paper" go here
];

然后,您需要寫出一行javascript,將php數組編碼為javascript對象:

<script>
var resultsTable = <?php echo json_encode($a); ?>;
</script>

然后,您的戰斗功能將變為:

function battle() {
  var x = document.getElementById("yours").value;
  var y = document.getElementById("opponent").value;
  var result = resultsTable[x][y];
  document.getElementById("result").innerHTML = result;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM