Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中添加查询表单和图像_Javascript_Html_Image - Fatal编程技术网

在javascript中添加查询表单和图像

在javascript中添加查询表单和图像,javascript,html,image,Javascript,Html,Image,我是Javascript新手。我想显示一个简单的表单,以及顶部的图像,并在提交时发送参数。表单本身运行良好,但我找不到在顶部显示图片的方法。。应该非常简单吗? 这是我的密码: var https = require('https'); var fs = require('fs') var path = require('path') url = require('url'); var qs = require("querystring"); var StringBuilder = requir

我是Javascript新手。我想显示一个简单的表单,以及顶部的图像,并在提交时发送参数。表单本身运行良好,但我找不到在顶部显示图片的方法。。应该非常简单吗? 这是我的密码:

var https = require('https');
var fs = require('fs')
var path = require('path')
url = require('url');

var qs = require("querystring");
var StringBuilder = require("stringbuilder");

const port = Number(process.env.PORT || 9000);

function getCalcHtml(req, resp, data) {


    var sb = new StringBuilder({ newline: "\r\n" });
    sb.appendLine("<html>");
    sb.appendLine(" <body>");

   // sb.appendLine(img);
 sb.appendLine("    <img src=\"./myimage.jpeg\" height=\"100\" width=\"100\">"); // NOT WORKING, shows an empty square
    sb.appendLine("     <form method='post'>");
    sb.appendLine("         <table>");
    sb.appendLine("             <tr>");
    sb.appendLine("                 <td>Serial Number: </td>");

    if (data && data.txtFirstNo) {
        sb.appendLine("                 <td><input type='text' id='txtFirstNo' name='txtFirstNo' value='{0}'/></td>", data.txtFirstNo);
    }
    else {
        sb.appendLine("                 <td><input type='text' id='txtFirstNo' name='txtFirstNo' /></td>");
    }

    sb.appendLine("             </tr>");
    sb.appendLine("             <tr>");
    sb.appendLine("                 <td> level: </td>");

    if (data && data.txtSecondNo) {
        sb.appendLine("                 <td><input type='text' id='txtSecondNo' name='txtSecondNo' value='{0}'/></td>", data.txtSecondNo);
    }
    else {
        sb.appendLine("                 <td><input type='text' id='txtSecondNo' name='txtSecondNo' /></td>");
    }

    sb.appendLine("             </tr>");
    sb.appendLine("             <tr>");
    sb.appendLine("                 <td><input type='submit' value='Submit value' /></td>");
    sb.appendLine("             </tr>");


    sb.appendLine("         </table>");
    sb.appendLine("     </form>")
    sb.appendLine(" </body>");
    sb.appendLine("</html>");

    sb.build(function (err, result) {
        resp.write(result);
        resp.end();
    });
}

function getCalcForm(req, resp, data) {
    resp.writeHead(200, { "Content-Type": "image/gif" });
    getCalcHtml(req, resp, data);


 // NOT WORKING
  //   var img = fs.readFileSync('./myimage.jpeg');
  //   resp.writeHead(200, {'Content-Type': 'image/gif' });
   //  resp.end(img, 'binary');
}

function post(req, resp, data) {
    resp.writeHead(200, { "Content-Type": "text/html" });
    //getCalcHtml(req, resp, data);
    // do a POST request
// create the JSON object
jsonObject = JSON.stringify({
    "SerialNumber": data.txtFirstNo.toString(),

    "Joints" : 45

});

  // do the POST call
  // works fine
  // etc

}

function getHome(req, resp) {
    resp.writeHead(200, { "Content-Type": "text/html" });
    resp.write("<html><html><head><title>Home</title></head><body>Test Form Click <a href='/calc'>here</a></body></html>");
    resp.end();
}

function get404(req, resp) {
    resp.writeHead(404, "Resource Not Found", { "Content-Type": "text/html" });
    resp.write("<html><html><head><title>404</title></head><body>404: Resource not found. Go to <a href='/'>Home</a></body></html>");
    resp.end();
}


http.createServer(function (req, resp) {
    switch (req.method) {
        case "GET":
            if (req.url === "/") {
                getHome(req, resp);
            }
            else if (req.url === "/calc") {
                getCalcForm(req, resp);
            }
            else {
                get404(req, resp);
            }
            break;
        case "POST":
            if (req.url === "/calc") {
                var reqBody = '';
                req.on('data', function (data) {
                    reqBody += data;
                    if (reqBody.length > 1e7) { //10MB
                        resp.writeHead(413, 'Request Entity Too Large', { 'Content-Type': 'text/html' });
                        resp.end('<!doctype html><html><head><title>413</title></head><body>413: Request Entity Too Large</body></html>');
                    }
                });
                req.on('end', function () {
                    var formData = qs.parse(reqBody);
                    getCalcForm(req, resp, formData);
                    Post(req,resp,formData);
                });
            }
            else {
                get404(req, resp);
            }
            break;
        default:
            get405(req, resp);
            break;
    }
}).listen(port);
var https=require('https');
var fs=require('fs')
var path=require('路径')
url=require('url');
var qs=要求(“查询字符串”);
var StringBuilder=require(“StringBuilder”);
const port=编号(process.env.port | | 9000);
函数getCalcHtml(请求、响应、数据){
var sb=新的StringBuilder({newline:“\r\n”});
某人加上一行(“”);
某人加上一行(“”);
//sb.附录(img);
sb.appendLine(“”;//不工作,显示一个空正方形
某人加上一行(“”);
某人加上一行(“”);
某人加上一行(“”);
sb.附录行(“序列号:”);
if(data&&data.txtFirstNo){
sb.appendLine(“”,data.txtFirstNo);
}
否则{
某人加上一行(“”);
}
某人加上一行(“”);
某人加上一行(“”);
某人的副词(“级别:”);
if(data&&data.txtSecondNo){
sb.appendLine(“”,data.txtSecondNo);
}
否则{
某人加上一行(“”);
}
某人加上一行(“”);
某人加上一行(“”);
某人加上一行(“”);
某人加上一行(“”);
某人加上一行(“”);
某人加上一行(“”)
某人加上一行(“”);
某人加上一行(“”);
某人构建(功能(错误、结果){
分别写入(结果);
分别结束();
});
}
函数getCalcForm(请求、响应、数据){
分别写头(200,{“内容类型”:“image/gif”});
getCalcHtml(请求、响应、数据);
//不起作用
//var img=fs.readFileSync('./myimage.jpeg');
//分别写头(200,{'Content-Type':'image/gif'});
//分别结束(img,“二进制”);
}
功能post(请求、响应、数据){
分别写头(200,{“内容类型”:“text/html”});
//getCalcHtml(请求、响应、数据);
//发邮件请求
//创建JSON对象
jsonObject=JSON.stringify({
“SerialNumber”:data.txtFirstNo.toString(),
“关节”:45
});
//投递电话
//很好
//等
}
函数getHome(请求、响应){
分别写头(200,{“内容类型”:“text/html”});
分别编写(“家庭测试表格点击”);
分别结束();
}
功能get404(请求、响应){
响应写头(404,“未找到资源”,{“内容类型”:“text/html”});
分别写入(“404404:未找到资源。转到”);
分别结束();
}
http.createServer(函数(req,resp){
开关(请求方法){
案例“GET”:
如果(请求url==“/”){
回家(请求、响应);
}
否则如果(req.url==“/calc”){
getCalcForm(请求、响应);
}
否则{
get404(请求、响应);
}
打破
案例“职位”:
如果(请求url==“/calc”){
var reqBody='';
请求开启(“数据”,功能(数据){
reqBody+=数据;
如果(reqBody.length>1e7){//10MB
响应写头(413,‘请求实体太大’,{‘内容类型’:‘text/html’});
分别结束('413413:请求实体太大');
}
});
请求开启('end',函数(){
var formData=qs.parse(reqBody);
getCalcForm(请求、响应、表单数据);
Post(请求、响应、表单数据);
});
}
否则{
get404(请求、响应);
}
打破
违约:
get405(请求、响应);
打破
}
}).监听(端口);

可能是因为img标签没有关闭。如果要在行中使用img,应在关闭img标记之前键入斜杠:


很抱歉,我现在无法自己测试,但另一个问题可能是这个StringBuilder如何处理斜杠,请验证是否需要转义此字符。

在浏览器中的inspector中,您是否看到img行?您确定当前目录是您想要的目录吗,并且图像文件存在于目录中?向
添加
alt
属性可以让您知道标记的格式是否正确,并回答找到文件的问题。既然您这么说,我确实在检查器中看到“加载资源失败:服务器响应时状态为404”的错误。我的代码现在是:sb.appendLine(“alt=\\“image\”);它将“图像”显示为文本。JS代码与myimage.jpeg中的代码位于同一目录中。。我没什么主意了。谢谢你的回答;不幸的是,关闭图像标签(好的呼叫)似乎没有什么不同。。不需要逃避这个角色,我检查过了。