Чтение данных из mysql и передача переменной в функцию jquery, запись в текстовое поле, не работа - PullRequest
0 голосов
/ 27 сентября 2018

Я новичок в 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>

----- ПРОБЛЕМА -------

NotePis textarea.

, если $ note имеет одну строку, то функция работает.все в порядке.

если в $ note много строк, функция modP не вызывается.

Я пытался:

$note = str_replace("\n","<br />", $row["Note"]);  

Не работает!

Пожалуйста, помогите мне.Спасибо.

Ответы [ 5 ]

0 голосов
/ 29 сентября 2018

Я решил это с помощью 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);
}

Спасибовы все за предложения

0 голосов
/ 29 сентября 2018
$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 - / * alert (note) НЕ работает * /

<script type="text/javascript"> 
function modPaziente(id,nom,ind,comID,citta,prov,tel,cf,ese,cons,nato,sesso,note,eta){ 
alert(note); 
} 
</script> 

почему modPaziente не читает заметки

0 голосов
/ 27 сентября 2018

используйте nl2br в $ note для разбиения мультипликаторов, как показано ниже.

$id=$row["ID"];  
$name=$row["Name"];
$note=$row["Note"]; 
$note=nl2br($note);

Вы можете вызвать функцию onclick для вашего html-элемента, как показано ниже.

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

Надеюсь, это поможет.

0 голосов
/ 27 сентября 2018

Я нашел это предложение Ссылка

Функция Jquery не принимает переменные в нескольких строках.

$note=str_replace("\n","<br />",$row["Note"]);

Теперь функция вызывается правильно.($ note) это одна строка.Как я могу написать текстовую область, восстанавливая оригинальный текст, с множеством строк?

0 голосов
/ 27 сентября 2018

Попробуйте закодировать вашу строку в JSON в части PHP, а затем декодировать в части JS.

PHP:

$note= json_encode($row["Note"]);

JS:

$("#NoteP").val( JSON.parse(note) );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...