我在html表中有一个摄像机名称列表。如果您愿意,可以按编辑按钮编辑相机名称。
这将打开一个表单(加上许多其他选项),现在可以编辑相机名称。
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, ...);
}
我的问题是通过cameraname。我允许特殊字符。所以你可以打电话给摄像机。
当我按下编辑按钮时,相机名称显示为刚刚
Joe's camera
。这与第一次创建相机名称时我在php中的验证功能有关…我相信:
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:
<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>
如果您查看此页面的源代码,它将显示:
Joe
。所以我想也许我需要用decodeuricomponent(cameraname)在js代码中解码,但这不起作用。谢谢你的帮助! 最佳答案
与其像现在一样构建输入框,不如尝试使用更多的jquery。
var $myinput = js('<input/>').attr('type','hidden').attr('name','camera_type').val(cameratype);
您的问题很可能是您在
value='" + cameratype + "'
部分创建了一个双引号问题。