我有1个表,有2列。我们将其称为col Number和col Letter。它看起来像这样:
1 | A
2 | B
3 | C
4 | D
我有一个select2下拉框,其中包含一个包含所有数字的循环 - 还有一个文本框,我希望该字母与该数字相关联。
HTML / PHP查询当前表
<label for="number">NUMBER</label>
<select onChange="setLetter(this)" style="text-transform: uppercase;" class="form-control select2" style="width: 100%;" name="number" id="number">
<option selected="selected" disabled="disabled">-Select-</option>
<?php
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<option name='".$row["Number"]."' value='".$row["Number"]."'>";
echo $row["number"];
echo "</option>";
}
} else {
echo "0 results";
}
$conn->close();
?>
</select>
</div>
JavaScript尝试查询select2框的值
function setLetter(sel)
{
var col = sel.value;
<?php
$number = "SELECT ['Letter'] FROM `msftrail` WHERE ['Number']= '".$col."'";
?>
var php_var = "<?php echo $number; ?>";
$("#letter").val(php_var);
}
如何使用表格中与正确数字相关的单元格填充Letter文本框?
答案 0 :(得分:1)
这里最简单的方法是将所有这些行放在一个数组中,serializing it as JSON。然后你可以在客户端加载它。
HTML + PHP:
$msftrail = array();
while($row = $result->fetch_assoc()) {
echo "<option name='".$row["Number"]."' value='".$row["Number"]."'>";
echo $row["number"];
echo "</option>";
$msftrail[$row['Number']] = $row['Letter']; // Store the mapping from Number to Letter in this array
}
的JavaScript + PHP:
var msftrail = <?php echo json_encode($msftrail); /* Send the array to the client as JSON */ ?>;
function setLetter(sel)
{
var col = sel.value;
var php_var = msftrail[col]; // Look up the letter for that number in the array
$("#letter").val(php_var);
}
答案 1 :(得分:0)
您可以使用所有字符创建一个数组,然后按索引调用相应的字符。
喜欢这样:
$foo = array(
'1' => 'A',
'2' => 'B',
'3' => 'C'
);
然后你可以通过用索引调用你的数组来获得你的角色。
喜欢这样:
echo $foo['1'];
答案 2 :(得分:0)
function setLetter(sel){
var tableValue=sel.value
$('.item tr').each(function() {
var td1 = $(this).find("td").eq(0).html();
var td2 = $(this).find("td").eq(1).html();
if(tableValue==td1){
$('#out').text(td2);
}
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<table class="item">
<tr>
<td>1</td>
<td>A</td>
</tr>
<tr>
<td>2</td>
<td>B</td>
</tr>
<tr>
<td>3</td>
<td>C</td>
</tr>
<tr>
<td>4</td>
<td>D</td>
</tr>
</table>
<form>
<select onChange="setLetter(this)">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
<br>
<textarea id="out"></textarea>
</form>