使用新行设置textarea的值

时间:2015-02-08 08:10:55

标签: javascript php jquery html

我有这个代码。 我想要的就是当我点击Assist按钮时。 数据库中的数据将显示在文本框和textarea中。 但我在textarea遇到麻烦。在数据库中,它有新行,我无法获得它的价值。 有人可以帮我吗?

<?php 
$tmp=mysqli_query($link, "select * from med_rec_tmp");
if($tmp){
while($row=mysqli_fetch_array($tmp)){
$rem = nl2br($row['Remarks']);?>
<tr>
<td><?php echo $row['Temp_RecNo']; ?></td>
<td><?php echo $row['FirstName']; ?></td>                                       
<td><?php echo $row['MiddleName']; ?></td>                                      
<td><?php echo $row['LastName']; ?></td>                                        
<td><?php echo $rem;?></td>
<td>                                                                            

<script type="text/javascript">                                                                     
$("#assist<?php echo $row['Temp_RecNo']; ?>").on('click', function(){
var txt = '<?php echo $rem; ?>';
var regex = /<br\s*[\/]?>/gi;
var txt2 = txt.replace(regex, "\n");
$("#rem").val(txt2);
$("#fname").val('<?php echo $row['FirstName'];?>');
$("#mname").val('<?php echo $row['MiddleName'];?>');
$("#lname").val('<?php echo $row['LastName'];?>');                                  
$("#id").val('<?php echo $row['Temp_RecNo'];?>');
});
</script>

<center>
<div class="btn-group btn-group-xs btn-group-justify" role="group" aria-label="...">                                                                            
<button type="submit" class='btn btn-info' id='assist<?php echo $row['Temp_RecNo']; ?>'><span class='fa fa-trash'></span>&nbsp;Assist</button>                                                                              
</div>                                                                              
</center>
</td>
</tr>
<?php }}?>

这是textarea代码

<div class="col-lg-12" style="padding:0px;">
<label class="control-label">Remarks:</label>
</div>
<div class="col-lg-12" style="padding:0px;">
<textarea class="form-control" style="width:100%;max-width:100%;min-width:100%;min-height:80px;max-height:80px;resize:none;" id="rem" name="remarks" rows="10" cols="50"></textarea>
</div>

3 个答案:

答案 0 :(得分:0)

你的问题很模糊,但听起来你只需要textarea来展示它的价值,对吗?如果是这样,请使用以下代码:

<div class="col-lg-12" style="padding:0px;">
    <textarea class="form-control" style="width:100%;max-width:100%;min-width:100%;min-height:80px;max-height:80px;resize:none;" id="rem" name="remarks" rows="10" cols="50">
       <?php echo $row['textarea']; ?> //If you are trying to insert the value for 
                                       //textarea, this is how you do it.
     </textarea>
</div>

如果是其他内容,请更具体。

答案 1 :(得分:0)

我认为您的问题只是文本中包含<br>个标记,并且您希望这些标记在textarea中显示为换行符。如果这是正确的,这应该对您有用,只需将<br>\n替换为carial return &#13;&#10;的htmlentities,并将其设置为textarea的{​​{1}} } property不是html

value
var txt2='this is a string<br>broken over several<br>lines';
$("#rem").html(txt2);
$("#rem").html( $("#rem").val().replace(/<br>|\\n/ig, "&#13;&#10;") );

答案 2 :(得分:0)

首先,我只是想让您明白,在PHP代码中包含您的显示元素通常不是一个好看的做法。有很多模板引擎,很多是基于Smarty(谷歌是你的朋友在这里)。 Here is a question有一些关于将模板引擎用于静态HTML并让它们处理数据转换为视图的一些好的和更详细的答案。由于我不了解你的经验水平,或许可以查看&#34; MVC&#34;或者&#34; MVC架构&#34; - 它是一套很好的规则,可以让你意识到分离每个文件的目标可以帮助你,

同样,如果这是代码在实际文件中的样子,没有缩进,你应该查看另一个文本编辑器,因为代码中的可读性是必不可少的,如果你的编辑器不是,那么帮助你保持你所写的温和可读性,它肯定会伤害你。 Here's a random article I found讨论为什么缩进代码可以是您不仅可以为自己做的最好的事情之一,也可以是其他可能需要稍后阅读文件的人。有很多可供选择,目前我正在使用Brackets,但是你目前正在使用的一个很好的升级可能是Notepad ++,我之前使用过它。

现在,(希望)回答你的问题(因为我没有数据可以使用),看来你的问题是这一行:

var txt = '<?php echo $rem; ?>';

我假设您的字符串可能包含某种单引号,例如$rem的值类似于I don't think you should go to the meeting tomorrow as...,因此当代码从浏览器打印出来时会发生这样的情况:

var txt = 'I don't think you should go to the meeting tomorrow as...';

甚至Stackoverflow着色在这里显示问题:txt被赋予I don的值,然后javascript会在此后来自其余字符串的混乱文本中引发错误。

我可以看到你应用的最快的解决方案是:

var txt = '<?php echo addslashes($rem); ?>';

哪会导致var text = 'I don\'t think you should go to the meeting tomorrow as...';的输出并且应该正常工作。

如果您只是想从您的数据库中复制粘贴一行数据,以便我可以直接看到问题的类型,我可能会对我的回答更有帮助我会在编辑完成后编辑我想出的解决方案。

小结

  1. 尝试从显示的HTML(视图/模型)
  2. 开始分离程序逻辑(控制器)
  3. 如果您的文本编辑器没有帮助您阅读可写代码,请找一个更好的代码。
  4. 尝试我的快速解决方案,如果它不起作用(或其他人尚未回答)请为我(和其他人)复制/粘贴一行数据以便进一步回答此问题问题。