小编Chr*_*ris的帖子

jQuery UI自动完成 - 菜单在悬停时消失

我正在尝试使用jQuery UI Autocomplete来显示MySQL数据库中的人员名单.基本功能正在运行 - 当您键入两个或更多字母时,会显示可能的名称列表 - 但是当我将鼠标悬停在列表上或按下向下键以访问列表时,它会消失(下面的2个屏幕截图可能有助于解释一下).

这意味着自动完成变得毫无意义,因为我实际上无法访问列表!如果有人可以提供帮助,我会非常感激!屏幕截图和代码发布在下面.

输入前几个字符,然后会出现菜单

截图1

但是,将鼠标悬停或按下"向下"键,它就会消失,然后才能进行选择

截图2

HTML:

  <div id="chooseaccount">
  Choose Account to Edit
  <div id="iechooseaccountlabel" class="labeldiv">
    <!--[if IE]>
     Enter Student Name
    <![endif]-->
   </div>

  <input type="text" class="inputs" id="editname" placeholder="Enter Student Name" />

  </div>
Run Code Online (Sandbox Code Playgroud)

jQuery的:

$(document).ready(function(){

$("#editname").autocomplete({
 source: "names.php",
 minLength: 2,
});

});
Run Code Online (Sandbox Code Playgroud)

PHP:

<?php  

$mysqli = new mysqli('********', '********', '**********', '*********');
$text = $mysqli->real_escape_string($_GET['term']);

$query = "SELECT name FROM users WHERE name LIKE '%$text%' ORDER BY name ASC";
$result = $mysqli->query($query);
$json = '[';
$first = true; …
Run Code Online (Sandbox Code Playgroud)

html jquery jquery-ui jquery-ui-autocomplete

61
推荐指数
2
解决办法
2万
查看次数

下载 webroot 之外的文件

好的,首先很抱歉,因为我意识到这是一个之前已经多次讨论过的主题 - 相信我,我知道,我已经阅读了之前的所有问题和答案,但仍然无法解决这个问题。

我有一个包含可下载文件的文件夹。出于安全目的,我将此文件放在 webroot 之外。然而,尽管我尽了最大的努力,我还是无法让我的 php 脚本下载文件。

我正在使用使用 Plesk 11 的 Linux VPS Apache 服务器。

(简化的)文件结构如下。该httpdocs文件夹是 webroot。该private/uploadedfiles文件夹是我要下载的位置。

-var
 - www
  - vhosts
   - mydomain.org.uk
    - httpdocs (webroot)
    - private
     - uploadedfiles
Run Code Online (Sandbox Code Playgroud)

我正在使用 jQuery ajax 调用将文件名传递给名为downloadscript.php. 该脚本位于httpdocswebroot 中。脚本如下:

<?php

$filename = $_POST['fbpath'];
$path = '/var/www/vhosts/mydomain.org.uk/private/uploadedfiles/' . $filename;

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($path));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($path));
ob_clean();
flush();
readfile($path);
exit;

?> …
Run Code Online (Sandbox Code Playgroud)

php apache plesk

6
推荐指数
1
解决办法
6254
查看次数

为什么\n不能处理我的PHP脚本的一行,但是对其他所有脚本都没问题?

我正在写一封电子邮件,要求在提交表格时发送.出于某种原因,\n角色在所有行上都能正确显示,但只有一行.我看不出这一行与其他行有什么区别,所以无法弄清楚它为什么不起作用.代码如下,连同我得到的输出以及使用的变量列表.

正如您在电子邮件中看到的那样,\n"工作地址"行的末尾不起作用,因此"公司名称"只是紧接着,而不是在下一行.然后\n公司名称工作正常,所以家庭地址在下一行.

这是消息的代码:

$xmsg = "First Name: $firstname\n" .
        "Last Name: $lastname\n" .
    "Work Tel: $worktel\n" .
    "Home Tel: $hometel\n" .
    "Mobile Tel: $mobtel\n" .
    "E-mail: $email\n" .
    "Work Address: $workad\n" .
    "Company Name: $company\n" .
    "Home Address: $homead\n" .
Run Code Online (Sandbox Code Playgroud)

这是输出:

First Name: Joe
Last Name: Bloggs
Work Tel: 0123456789
Home Tel: 0987654321
Mobile Tel: 0789456123
E-mail: joe.bloggs@jb.co.uk
Work Address: Bloggoffice, Joe Street, London, N1 J0E Company Name: 
Home Address: 9 Blogg Street, Borough …
Run Code Online (Sandbox Code Playgroud)

php server-side-scripting

5
推荐指数
1
解决办法
299
查看次数

是否可以遍历数组以动态生成反应组件?

不确定标题是否完全清楚(不知道如何措辞)所以让我解释一下。

我想尝试将组件名称列表存储在数组中,然后循环使用map(或合适的等效项)以将每个数组值显示为 JSX 组件。

所以类似的东西(感谢这段代码不起作用,只是想展示我希望实现的目标):

render(){
  let links = ['DashboardLink', 'CoursesLink', 'AssignmentsLink'];
  return (
    <div>{
      links.map((Link) => {
        return <Link key={Link} />
      }
    }</div>
  )
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,结果是:

<div>
  <DashboardLink key='DashboardLink' />
  <CoursesLink key='CoursesLink' />
  <AssignmentLink key='AssignmentLink' />
</div>
Run Code Online (Sandbox Code Playgroud)

然后每个组件将在 div 中呈现。

我对 React 和 ES6 非常陌生,因此对于任何明显的错误,我深表歉意。

谢谢!

javascript jsx ecmascript-6 reactjs

5
推荐指数
1
解决办法
3774
查看次数

每次我使用预先保存的钩子保存时,猫鼬都会更改密码

我正在使用带有bcrypt的预保存钩子来加密系统上的密码。创建或更改密码时,它可以正常工作。问题在于,每次我更改并保存其他字段(例如电子邮件)时,它似乎都重新加密了密码。

用代码可能更容易解释。这是模型:

const UserSchema = new Schema({
    email: {
        type: String,
        required: true,
        lowercase: true,
        unique: true,
        trim: true
    },
    password: {
        type: String,
        required: true
    }
})
Run Code Online (Sandbox Code Playgroud)

和钩子:

UserSchema.pre('save', function(next){
    const user = this;
    console.log(user);
    bcrypt.genSalt(10, function(err, salt){
        if (err){ return next(err) }

        bcrypt.hash(user.password, salt, null, function(err, hash){
            if(err){return next(err)}

            user.password = hash;
            next();
        })
    })
});
Run Code Online (Sandbox Code Playgroud)

这是我的更新电子邮件地址的代码:

module.exports = function(req, res){
    User.findOne({ _id: req.body.user}, function(err, doc){
        if(err){
            console.log(err);
            return;
        }

        doc.email = req.body.data;
        doc.save(function(err, returnData){
            if (err){
                console.log(err); …
Run Code Online (Sandbox Code Playgroud)

javascript mongoose node.js mongoose-schema

5
推荐指数
1
解决办法
976
查看次数

创建 React App http-proxy-middleware 不起作用

所以我已经在我的create-react-app应用程序上使用http-proxy-middleware. 我确定我已经按照信中的说明进行操作,但是每次我尝试单击相关链接时都会收到 404。

我正在使用create-react-appv3.2。

这是我的setupProxy.js文件:

const proxy = require("http-proxy-middleware");

module.exports = function(app) {
    app.use(proxy("/api", { target: "http://localhost:3090" }));
};
Run Code Online (Sandbox Code Playgroud)

这是发出http请求的动作创建者

export const signIn = formProps => async dispatch => {
    try {
        const response = await axios.post("/api/login", formProps);

        //.....etc, etc
    } catch(e) {

        //.....etc,etc
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的快递服务器上的相关路线:

app.post("/login", requireSignIn, Authentication.login);
Run Code Online (Sandbox Code Playgroud)

当开发服务器启动时,我收到以下消息:

[HPM] Proxy created: /api  -> http://localhost:3090
Run Code Online (Sandbox Code Playgroud)

所以setupProxy.js显然是被 CRA 发现了,但有什么地方不对劲。我试过在代理设置中添加通配符(例如“/api/*”),但没有成功。我在客户端的控制台中登录了以下 404:

POST http://localhost:3000/api/login 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)

which 指的是 …

node.js express reactjs create-react-app http-proxy-middleware

5
推荐指数
2
解决办法
1万
查看次数

为什么我的输入类型=文件没有加载文件信息?

试着理解这个问题.我有一个<input type='file'>元素用于上传文件,作为旧版浏览器用户拖放选项的替代选项.

拖放上传工作正常,但由于某些原因使用输入选择文件时,files对象返回undefined.

在下面的示例中,我已经包含了一个测试变量来检查事件监听器是否正常工作 - 它是什么 - 但是尝试记录文件的内容是不行的 - 我是否尝试记录完整对象或单个属性.

这是代码:

HTML:

 <input type="file" id='uploadFile'>
Run Code Online (Sandbox Code Playgroud)

Javascript(jQuery)

 doc.on('change', '#uploadFile', function(){
    var file = $(this);
    var test = 'Event Triggered';
    console.log(test);               //Returns 'Event Triggered'
    console.log(file.files);         //Returns undefined
    console.log(file.files[0]);      //Returns TypeError: cannot read property '0' of undefined
 });
Run Code Online (Sandbox Code Playgroud)

我哪里错了?不禁觉得这是一个愚蠢的疏忽,但任何帮助都会受到赞赏.

谢谢!

html javascript jquery html5

4
推荐指数
2
解决办法
3324
查看次数

PHPMailer - 邮件直接发送垃圾邮件

每当我使用PHPMailer发送自动电子邮件时,它都会直接进入Gmail中的垃圾邮件文件夹.我自己试图找到解决方案,但我对电子邮件和电子邮件标题不太了解.

任何人都可以解释为什么会这样吗?

下面是PHP代码,后面是从接收器显示的标头.

谢谢!

$mail = new PHPMailer;
$mail->From = "chrisxenongroup@server.xenonacademy.org.uk";
$mail->FromName = 'Xenon Group Academy';
$mail->AddAddress($email);
$mail->Subject = "Your Xenon Group Academy login details";
$mail->IsHTML(true);
$mail->Body = "<html><body><h3>Welcome to the Xenon Group Academy</h3><p>The Academy is an online system that will allow you to access course materials, manage your assignments and network with other Xenon Group students.</p>
<p>To access your account, go to <a href='http://www.xenonacademy.org.uk'>www.xenonacademy.org.uk</a> and use the following details to login.</p><p><pre>E-mail:            $email</pre></p><p><pre>Password:       " . mysqli_real_escape_string($conn, $_POST['password']) . "</pre></p><br /><br …
Run Code Online (Sandbox Code Playgroud)

php email phpmailer

3
推荐指数
1
解决办法
2万
查看次数

.map 中的 Return 语句未渲染

我在 React 组件中有几个嵌套的 .map 函数,它们似乎工作正常,但由于某种原因,最终地图的 return 语句中的 jsx 没有渲染。

这是代码:

<ul className={`dropdown-menu ${styles.stretch} ${styles.dropdown}`}>
    {
        courseData.courses[0].levels.map(levels => {
            if (levels.id === props.selectedLevel){
                levels.options.map(index => {
                    console.log(index)
                    return (
                        <li key={index.number}>
                            //more content goes here...
                        </li>
                    ) //return
                }) //levels.options.map()
            } //if (...)
        }) //courseData...map()
    }
</ul>
Run Code Online (Sandbox Code Playgroud)

嵌套console.log中的.map()工作正常并显示正确的数据,因此到目前为止一切都很好,但由于某种原因<li>return 语句内的元素没有呈现到页面。我知道这与标签的内容无关,<li>因为它甚至不会用简单的文本节点渲染简单的元素。

我确信我在这里遗漏了一些明显的东西,但我正抓着头发试图弄清楚。任何帮助,将不胜感激!

顺便说一句,该列表是一个引导下拉按钮列表 - 不确定这是否可以部分负责。

javascript jsx reactjs

3
推荐指数
1
解决办法
7218
查看次数

无法使用webpack dev服务器中间件加载图像

所以我花了过去24小时调整我的代码并试图让它工作并搜索SO和谷歌,但没有运气 - 也许有人可以提供帮助!

我的React应用程序在Express上运行,但使用的是webpack-dev-server中间件.当我加载页面时,图像显示为空白,就好像它们不存在一样.我没有在我的控制台中收到任何错误消息(例如没有404错误),但图像元素只是显示alt文本而不显示实际pngsvg应该在那里.

顺便说一句,不仅仅是反应组件无法呈现图像 - 我尝试将图像文件硬编码到我的index.html文件中作为测​​试,这产生了相同的结果.

这是我的代码:

server.js(截断以排除数据库设置和其他快速路由)

const express = require('express');
const webpack = require('webpack');
const webpackDevMiddleware = require('webpack-dev-middleware');
const webpackHotMiddleware = require('webpack-hot-middleware');
const path = require('path');
const mongoose = require('mongoose');
const config = require('./webpack.dev.config');

// SERVER SETUP

const app = express();
const router = express.Router();

var publicPath = path.resolve(__dirname, 'public');

compiler=webpack(config);

app.use(webpackDevMiddleware(compiler, {
    publicPath: config.output.publicPath,
    stats: {colors: true}
}));

app.use(webpackHotMiddleware(compiler, {
    log: console.log
}));

//Routes

// ...additional routes

app.get('*', function(req, res){ …
Run Code Online (Sandbox Code Playgroud)

node.js express reactjs webpack webpack-dev-server

3
推荐指数
1
解决办法
6158
查看次数