Javascript 从div标记获取值
我有以下情况,我知道在stackoverflow中有很多这个主题,但没有答案给出真正的解决方案,所以我再次发布 首先看一下这段代码:Javascript 从div标记获取值,javascript,Javascript,我有以下情况,我知道在stackoverflow中有很多这个主题,但没有答案给出真正的解决方案,所以我再次发布 首先看一下这段代码: <tr> <td align="right">Estado</td><td> <select name="estado" onChange="javascript:Atualiza(this.value,'0');"> <option>[sele
<tr>
<td align="right">Estado</td><td>
<select name="estado" onChange="javascript:Atualiza(this.value,'0');">
<option>[selecione]</option>
<?
$qry = "SELECT nome, uf FROM tb_estados";
$res = mysql_query($qry);
while ($ln = mysql_fetch_array($res)) {
echo "<option value='$ln[uf]'>".$ln['nome']."</option>";
}
?>
</select>
</td>
</tr>
还有我的页面组合_cidade.php
<?php
echo "<select name='cidade' id='cidade'>";
echo "<option>[selecione]</option>";
# my databse connection
include_once("config/config.php");
$sql = "SELECT tb_cidades.nome, tb_cidades.id FROM tb_cidades INNER JOIN tb_estados ON tb_cidades.uf=tb_estados.uf WHERE tb_cidades.uf='".$_GET["uf"]."'";
$resultado = mysql_query($sql);
while ($linha = mysql_fetch_array($resultado)){
if ($_GET["cid"]==$linha["id"]){$sel="selected";}else{$sel="";}
echo "<option value='$linha[id]' $sel>$linha[nome]</option>";
}
echo "</select>";
?>
试试这个(用javascript)
或
至于如何将它(javascript)包含到PHP中,我还不在这个范围内(到目前为止)
希望这能有所帮助。为什么不将select放在表单中?如果需要,一个页面中可以有多个表单 在页面中添加此JS代码:
<script type="text/javascript">
function AddHiddenValue(oForm) {
var strValue = document.getElementById("atualiza").innerHTML;
var oHidden = document.createElement("input");
oHidden.name = "atualiza";
oHidden.value = strValue;
oForm.appendChild(oHidden);
}
</script>
函数AddHiddenValue(oForm){
var strValue=document.getElementById(“atualiza”).innerHTML;
var oHidden=document.createElement(“输入”);
oHidden.name=“atualiza”;
oHidden.value=标准值;
附肢儿童(oHidden)形式;
}
然后在表单标签中添加以下内容:
<form ... onsubmit="AddHiddenValue(this);">
最后在PHP代码中从请求中读取“atualiza”的值。在javascript中,
value
属性用于表单元素,如input
、select
和textarea
。如果想要获取DIV元素的“值”(我指的是在该标记中写入的内容),可以使用innerHTML
属性。例如,考虑下面的HTML:
<div id="d">Hello</div>
结论:
将一个名为cidade
的隐藏input
放在表单中的某个位置:
<form ...>
...
<input type="hidden" name="cidade" id="cidade_input" value="" />
或在提交表格时:
your form tag:
<form ... onsubmit="f2()">
in JavaScript:
function f2() {
document.getElementById('cidade_input').value = document.getElementById('cidade').value;
}
另一个注意事项:最好对HTML属性值使用双引号,而不是单引号。您可以将第二行PHP代码更改为:
echo '<select name="cidade" id="cidade" onchange="f1(this.value);">';
如果使用onchange
而不是onsubmit
(即在组合更改时设置隐藏的输入值,而不是在提交表单时),则id
属性也没有用。这将把它改为:
echo '<select onchange="f1(this.value);">';
echo';
如果div
包含粗体文本,则innerHTML
返回text
(示例)。我已使用函数Atualiza()更新了我的帖子,还有我的页面combo_cidade.php…不起作用,它在我的表中放入了一个零值。但我认为这是一条路。。无论如何谢谢。@Fernando对不起,就是这样,你做错了什么。让我们试着一步一步地调试它。在这一行之后:var strValue=document.getElementById(“atualiza”).innerHTML代码>添加这一新行:警报(“值:+strValue”)代码>提交表单时你看到了什么?@Fernando OK,所以你的DIV包含了很多东西。你到底想送什么?“cidade”下拉列表的选定值?@Fernando,因此更改此var strValue=document.getElementById(“atualiza”).innerHTML代码>到这个:var strValue=document.getElementById(“cidade”).value
但是您应该能够直接从PHP中读取此内容。@Fernando很高兴它终于起作用了,如果我知道您在该下拉列表的选定值之后,早就可以解决此问题了。…:/
<div id="d">Hello</div>
<tr>
<td align="right">Cidade</td>
<td><div id="atualiza"><select name='cidade' id='cidade'><option>...</select></div></td>
</tr>
<form ...>
...
<input type="hidden" name="cidade" id="cidade_input" value="" />
combo_cidade.php, line 2:
echo "<select name='cidade' id='cidade' onchange='f1(this.value);'>";
in your JavaScript:
function f1(value) {
document.getElementById('cidade_input').value = value;
}
your form tag:
<form ... onsubmit="f2()">
in JavaScript:
function f2() {
document.getElementById('cidade_input').value = document.getElementById('cidade').value;
}
$sql = "SELECT tb_cidades.nome, tb_cidades.id FROM tb_cidades INNER JOIN tb_estados ON tb_cidades.uf=tb_estados.uf WHERE tb_cidades.uf='".addslashes($_GET["uf"])."'";
echo '<select name="cidade" id="cidade" onchange="f1(this.value);">';
echo '<select id="cidade" onchange="f1(this.value);">';
echo '<select onchange="f1(this.value);">';