Ich habe eine Liste von Kameranamen in einer html-Tabelle. Wenn Sie möchten, können Sie den Kameranamen über eine Schaltfläche bearbeiten.
Daraufhin öffnet sich ein Formular (mit vielen anderen Optionen), in dem der Kameraname nun bearbeitet werden kann.
var edit = function(t, to, cameratype, cameraname, ...)
{
var mydiv = js("#editform");
if (mydiv.find("form").length) {
mydiv.show();
} else {
// fields
var $myform = js("<form id='EditCameraForm' name='' method='post' action='" + to + "'></form>");
var $myfieldset = js("<fieldset><legend>Edit camera settings</legend></fieldset>");
var $myinput = js("<input type='hidden' name='camera_type' value='" + cameratype + "' />");
var $mylabel = js("<label for='CameraName'>Camera name: </label>");
var $myinput2 = js("<input id='CameraName' name='camera_name' size='25' value='" + cameraname + "' />");
$myform.append($myinput, $mylabel, $myinput2, ...);
}
Mein Problem ist die Übergabe von cameraname. Ich erlaube Sonderzeichen. So können Sie die Kamera aufrufen Joe's camera
.
Wenn ich auf die Schaltfläche "Bearbeiten" klicke, wird der Kameraname nur als Joe
.
Das hat mit meiner Validierungsfunktion in php zu tun, wenn der Kameraname zum ersten Mal erstellt wird... glaube ich:
function check_input($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = mb_convert_encoding($data, 'UTF-8', 'UTF-8');
$data = htmlentities($data, ENT_QUOTES, 'UTF-8');
return $data;
}
cameraname wird über den Klick auf die Schaltfläche übergeben:
<button id="editbutton" onClick='edit(this, "<?php echo htmlentities($_SERVER['REQUEST_URI']); ?>", "<?php echo $result_cameras[$i]["camera_type"]; ?>", "<?php echo $result_cameras[$i]["camera_name"]; ?>", ...)'>Edit</button>
Wenn Sie sich die Quelle dieser Seite ansehen, wird sie angezeigt: Joe's camera
. Also dachte ich, vielleicht muss ich das im JS-Code mit decodeURIComponent(cameraname) dekodieren, aber das funktioniert nicht. Danke für jede Hilfe!