将特定的表格单元格值设置为文本框(jQuery / PHP)

时间:2017-11-02 20:08:46

标签: php jquery html mysql

我有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文本框?

3 个答案:

答案 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>