通过Ajax传递MySQL
Passing MySQL through Ajax
我有一个简单的注册表单,它使用jQuery和Ajax来验证用户输入。当Ajax尝试对电子邮件地址(例如)进行服务器端验证并连接到数据库时,它不会通过$msg
返回结果。
function checkUser () {
$search = mysql_query("SELECT * FROM users WHERE username = '" . $username . "'");
$match = mysql_num_rows($search);
if($match > 0) {
$msg .= 'Username already in use, please try another.';
}
}
JS:
function send(datastr) {
$.ajax({
type: "POST",
url: "./scripts/addmember.php",
dataType: "text",
data: datastr,
cache: false,
success: function(html) {
$("#errordiv").fadeIn("slow");
$("#errordiv").html(html);
//setTimeout('$("#errordiv").fadeOut("slow")',2000);
}
});
}
在您的checkUser()
函数中,您使用的是未定义的$msg
和$username
。你要么遗漏了这些,要么你对编程非常陌生。
$msg
在函数中是不可访问的,除非你在函数中定义它。
在javascript中是有效的:
var msg = "";
function appendToMsg(text) {
msg += text;
}
appendToMsg("test");
在PHP中,这不是:
$msg = "";
function appendToMsg($text) {
$msg += $text;
}
appendToMsg("test");
这将抛出一个通知PHP通知:未定义变量:msg。函数appendToMsg
只知道$text
,不知道$msg
。
这段JavaScript代码的正确PHP表示是:
$msg = "";
function appendToMsg(&$msg, $text) {
$msg += $text;
}
appendToMsg($msg, "test");
关于变量作用域的更多信息:
- PHP: Variable scope (PHP.net)
- Scope(计算机科学)(wikipedia.org)
您需要对输出进行echo
:
echo 'Username already in use, please try another.';
在为$msg变量设置文本之后,写如下:
echo $msg;
相关文章:
- 如何使用jQueryPOST将get变量从JavaScript传递到PHP-Mysql
- 向更新mysql查询传递一个id
- 可以't通过JQUERY传递PHP变量并将它们插入MYSQL
- 通过 AJAX 调用 PHP 文件,将 $_GET 变量传递到 MySQL 查询中,然后回显到响应中
- Express - 将 mysql 连接传递给脚本
- PHP MySQL值传递到JavaScript
- 传递参数的问题,以及为MYSQL集成准备代码的问题
- 使用Javascript将变量传递到php-MySQL脚本
- json_encode mysql 请求的 PHP 脚本无法传递到 getJSON()
- jQuery 和 PHP 通过 jquery 从 MYSQL 获取特定传递 id 的特定表
- 将值与MySQL一起传递,将检索到的值作为JavaScript中的隐藏值传递给AJAX函数
- 将 PHP 数组项传递到 JavaScript 弹出窗口中,以便在 MySQL DB 中进行编辑和更新
- 如何将变量从 MySQL 传递到 SWF
- 使用PHP将文本从MySQL传递到Javascript函数时遇到问题
- 从弹出窗口中使用php和javascript传递多个MySQL结果集
- mysql循环来显示图像.需要帮助为每个图像传递/设置计数-javascript
- 如何将作用域传递给节点mysql中的回调
- 当从PHP(mysql)传递数据到AngularJS时没有数据
- 将文本从mysql传递到JSP页面上的javascript
- 在django中使用ajax将数据从mysql传递到html