我在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:&nbsp;</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 + "'部分创建了一个双引号问题。

10-06 02:45