如何从字符串数组或csv中选择字符串?

时间:2017-07-01 13:26:10

标签: javascript php html

我需要为俱乐部创建一个网站,该网站显示下拉菜单中项目之间的关系。例如,我们采用石头剪刀。 数据将由.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,生成下拉列表)。

现在,我不确定正确的,网络开发的做事方式: 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>

1 个答案:

答案 0 :(得分:0)

使用您的表值设置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;
}