从 mysql 读取数据并将变量传递给 jquery 函数,写入文本区域,不起作用
Read data from mysql and pass variable to jquery function, write in a textarea, not work
我是 jquery 的初学者。我为我的英语感到抱歉。
我从 mysql:
读取数据
$id=($row["ID"]);
$name=($row["Name"]);
$note=($row["Note"]); *// note set to textarea*
发送函数:
onclick= modP($id,$name,$note);
<script>
function modP(id,name,note){
$("#NoteP").val(note);
}
</script>
----- 问题 ------
NoteP is textarea.
如果 $note 有一行,则该功能有效。一切顺利。
如果 $note 有很多行,则不会调用函数 modP。
我试过:
$note = str_replace("\n","<br />", $row["Note"]);
无效!
请帮助我。谢谢。
尝试在 PHP 部分将您的字符串编码为 JSON,然后在 JS 部分解码。
PHP :
$note= json_encode($row["Note"]);
JS :
$("#NoteP").val( JSON.parse(note) );
在 $note 上使用 nl2br 来打破多行,如下所示。
$id=$row["ID"];
$name=$row["Name"];
$note=$row["Note"];
$note=nl2br($note);
您可以在 html 元素上调用 onclick 函数,如下所示。
<button onClick="modP('<?php echo $id ?>','<?php echo $name ?>','<?php echo $note ?>');">Click</button>
modP函数如下图
<script type="text/javascript">
function modP(id,name,note) {
$("#NoteP").val(note);;
}
</script>
希望对您有所帮助。
我找到了这个建议
Link
Jquery 函数不接受多行变量。
$note=str_replace("\n","<br />",$row["Note"]);
现在函数被正确调用了。
($note) 是一行。
怎么写textarea恢复原文,行数多?
$note = json_encode($row["Note"], JSON_HEX_QUOT | JSON_HEX_TAG);
// note set to textarea - multiline
将 $data 传递给函数 modPaziente:
echo("<td><input name=\"imgmodifica\" id=\"imgmodifica\" type=\"image\" src=\"image/modifica2.png\" width=\"24\" height=\"24\" title=\"Elimina ".$row["ID_P"]."\" onclick=\"return modPaziente('$id','$nom','$ind','$comID','$citta','$prov','$tel','$cf','$ese','$cons','$nato','$sesso','".$note."','$eta')\"> </input></td>");
JS - /* 警报(注意)不工作 */
<script type="text/javascript">
function modPaziente(id,nom,ind,comID,citta,prov,tel,cf,ese,cons,nato,sesso,note,eta){
alert(note);
}
</script>
为什么 modPaziente 不读笔记?
我用 htmlspecialchars 和 json_encode 解决了这个问题:
$note = htmlspecialchars(json_encode($row["Note"], JSON_HEX_QUOT | JSON_HEX_TAG));
...没有引号 $note
onclick="return modPaziente($note);"
.....
<script type="text/javascript">
function modPaziente(note){
alert(note);
}
谢谢大家的建议
我是 jquery 的初学者。我为我的英语感到抱歉。 我从 mysql:
读取数据$id=($row["ID"]);
$name=($row["Name"]);
$note=($row["Note"]); *// note set to textarea*
发送函数:
onclick= modP($id,$name,$note);
<script>
function modP(id,name,note){
$("#NoteP").val(note);
}
</script>
----- 问题 ------
NoteP is textarea.
如果 $note 有一行,则该功能有效。一切顺利。
如果 $note 有很多行,则不会调用函数 modP。
我试过:
$note = str_replace("\n","<br />", $row["Note"]);
无效!
请帮助我。谢谢。
尝试在 PHP 部分将您的字符串编码为 JSON,然后在 JS 部分解码。
PHP :
$note= json_encode($row["Note"]);
JS :
$("#NoteP").val( JSON.parse(note) );
在 $note 上使用 nl2br 来打破多行,如下所示。
$id=$row["ID"];
$name=$row["Name"];
$note=$row["Note"];
$note=nl2br($note);
您可以在 html 元素上调用 onclick 函数,如下所示。
<button onClick="modP('<?php echo $id ?>','<?php echo $name ?>','<?php echo $note ?>');">Click</button>
modP函数如下图
<script type="text/javascript">
function modP(id,name,note) {
$("#NoteP").val(note);;
}
</script>
希望对您有所帮助。
我找到了这个建议 Link
Jquery 函数不接受多行变量。
$note=str_replace("\n","<br />",$row["Note"]);
现在函数被正确调用了。 ($note) 是一行。 怎么写textarea恢复原文,行数多?
$note = json_encode($row["Note"], JSON_HEX_QUOT | JSON_HEX_TAG);
// note set to textarea - multiline
将 $data 传递给函数 modPaziente:
echo("<td><input name=\"imgmodifica\" id=\"imgmodifica\" type=\"image\" src=\"image/modifica2.png\" width=\"24\" height=\"24\" title=\"Elimina ".$row["ID_P"]."\" onclick=\"return modPaziente('$id','$nom','$ind','$comID','$citta','$prov','$tel','$cf','$ese','$cons','$nato','$sesso','".$note."','$eta')\"> </input></td>");
JS - /* 警报(注意)不工作 */
<script type="text/javascript">
function modPaziente(id,nom,ind,comID,citta,prov,tel,cf,ese,cons,nato,sesso,note,eta){
alert(note);
}
</script>
为什么 modPaziente 不读笔记?
我用 htmlspecialchars 和 json_encode 解决了这个问题:
$note = htmlspecialchars(json_encode($row["Note"], JSON_HEX_QUOT | JSON_HEX_TAG));
...没有引号 $note
onclick="return modPaziente($note);"
.....
<script type="text/javascript">
function modPaziente(note){
alert(note);
}
谢谢大家的建议