从 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);
}

谢谢大家的建议