对于想了解如果已经使用了用户名,则jQuery检查mysql数据库的读者,本文将提供新的信息,我们将详细介绍如果用户已经知道程序的名称和所在的文件夹路径,并且为您提供关于jquery–使用AJAX检查
对于想了解如果已经使用了用户名,则jQuery检查mysql数据库的读者,本文将提供新的信息,我们将详细介绍如果用户已经知道程序的名称和所在的文件夹路径,并且为您提供关于jquery – 使用AJAX检查数据库中是否存在用户名、jquery – 如何在复选框条件更改时使用ajax更新mysql数据库?、jQuery-使用带有MySQL数据库的无限滚动、jQuery-绘制实时MySQL数据的有价值信息。
本文目录一览:- 如果已经使用了用户名,则jQuery检查mysql数据库(如果用户已经知道程序的名称和所在的文件夹路径)
- jquery – 使用AJAX检查数据库中是否存在用户名
- jquery – 如何在复选框条件更改时使用ajax更新mysql数据库?
- jQuery-使用带有MySQL数据库的无限滚动
- jQuery-绘制实时MySQL数据
如果已经使用了用户名,则jQuery检查mysql数据库(如果用户已经知道程序的名称和所在的文件夹路径)
到目前为止我有这个jQuery代码:
$("#Contact_Info").validate({ rules: { username: { required: true,minlength: 6,remote: "check-username.PHP" } },messages: { username:{ remote: "This username is already taken! Try another." } } });
我应该如何编写我的PHP页面以使其与jQuery代码对话?
到目前为止,我有:
$name = MysqL_real_escape_string($name); $query = "SELECT USERNAME FROM T_MEMBER WHERE USERNAME='$name';"; $res = MysqL_query($query); if (MysqL_num_rows($res) > 0) { return false; } else return true;
如何从javascript获取$name变量?我必须将“远程”设置为POST吗?
提前致谢,
伊恩麦卡洛
解决方法
手册说:
The response is evaluated as JSON and must be
true
for valid elements,and can be anyfalse,undefined or null
for invalid elements
所以你可以将PHP更改为:
if (MysqL_num_rows($res) > 0) { $output = true; } else { $output = false; } echo json_encode($output);
jquery – 使用AJAX检查数据库中是否存在用户名
我有几个关于AJAX的问题 –
1)我想创建一个AJAX请求on_change函数,所以像这样 –
$('#username').change(function() { $.ajax({ url: "validation.PHP" }); });
所以,据我所知,我必须在validation.PHP文件中使用PHP进行所有验证,对吗?是否需要进行任何特殊验证,或者只是使用sql语句进行简单验证 – SELECT * FROM’users’WHERE’username’=’. $_POST [ ‘用户名’];
2)据我所知,我必须通过$.ajax传递POST值,对吗?如果是,我将如何通过validation.PHP文件访问它们?
3)我在validation.PHP文件中得到结果后,如何将它们传回(真或假 – 存在或不存在)?我需要将它们传回去,然后进行if检查,如果是真的 – 显示用户名已存在的错误,否则,不显示任何内容?
希望,你了解我即将创造的东西.我知道互联网上有很多教程,但我不喜欢通过教程创建一些东西,因为如果我自己创建它,下次会更容易理解;)!
编辑:此外,我正在使用CodeIgniter框架创建我的网站,那么我如何将ajax中的url属性传递给CodeIgniter模块?
解决方法
据我所知,我将如何通过validation.PHP文件访问它们?
因为这是一个简单的请求,我建议你使用JQuery的方法$.post().这是一个基于你想要做的事情的样本.
$.post('validation.PHP',{username: $('#username').val()},function(data){ if(data.exists){ //tell user that the username already exists }else{ //username doesn't exist,do what you need to do } },'JSON');
jQuery的post方法需要4个参数$.post(url,data,callback,datatype).在上面的示例中,我们将使用$(‘#username’).val()将用户名发布到validation.PHP并期望获得JSON响应.请求完成后,将执行回调函数,数据是来自请求的响应.因为我们指定该响应将是JSON,所以我们可以像javascript中的本机对象一样访问它.现在让我们转到validation.PHP
就像我上面所说的,我建议你使用PDO作为数据库驱动程序.所以在这个例子中,我将向您展示它的基本用法.
//set the headers to be a json string header('content-type: text/json'); //no need to continue if there is no value in the POST username if(!isset($_POST['username'])) exit; //initialize our PDO class. You will need to replace your database credentials respectively $db = new PDO('MysqL:host=DATABASE_HOST;dbname=DATABASE_NAME','DATABASE_USERNAME','DATABASE_PASSWORD',array(PDO::MysqL_ATTR_INIT_COMMAND => "SET NAMES utf8")); //prepare our query. $query = $db->prepare('SELECT * FROM users WHERE username = :name'); //let PDO bind the username into the query,and prevent any sql injection attempts. $query->bindParam(':name',$_POST['username']); //execute the query $query->execute(); //return the json object containing the result of if the username exists or not. The $.post in our jquery will access it. echo json_encode(array('exists' => $query->rowCount() > 0));
现在回顾一下,我们的jQuery脚本将发布到validation.PHP,它从数据库中选择一个用户名.它将返回一个JSON对象,该对象具有exists的键,该键是一个布尔值,指示用户名是否已作为数据库中的行存在.通过jQuery完成请求后,您可以根据查询结果执行所需操作.我希望这是一个彻底的解释,并引导您达到您希望实现的目标.
jquery – 如何在复选框条件更改时使用ajax更新mysql数据库?
我有一个文章表,在客户端显示在行中.每篇文章都有一个唯一的ID,并包含一个复选框,用于指示是否将此文章选为收藏夹.如果它是收藏夹,则已选中复选框.如果没有,则取消选中.现在我需要js或jquery和ajax来更新数据库中的表,如果复选框条件更改特定于每一行.另一个挑战是我在cakePHP MVC环境中工作.
<script type="text/javascript" src="jquery-1.2.1.min.js"></script>
<script type="text/javascript">
function checkBox_click (id, favorite)
{
// see if checkBox is checked
if(favorite==1)
{
$.ajax({
type:'POST',
url:'check_favorite.PHP', // this external PHP file isn't connecting to MysqL db
data:'id= ' + id + '&favorite=1',
});
}// if
// the checkBox was unchecked
else
{
$.ajax({
type:'POST',
url:'check_favorite.PHP', // this external PHP file isn't connecting to MysqL db
data:'id= ' + id + '&favorite=0',
});
}//else
}
</script>
–html–这是一个foreach循环.
echo "<input type='checkBox' id='$rowid;' name='favorite' checked='checked' onclick='checkBox_click('id','favorite',this();' />";
else
echo "<input type='checkBox' id='$rowid;' name='favorite' onclick='checkBox_click('id','favorite',this.checked);' />";
-jax调用的-PHP文件 –
<?PHP
//Database Variables - with the variables entered it doesn't connect
$dbhost = 'localhost'; // usually localhost
$dbuser = 'username'; // database username
$dbpass = 'password'; // database password
//Establish connection to MysqL database
$con = @MysqL_connect($dbhost, $dbuser, $dbpass);
if (!$con)
die('Unable to connect.' . MysqL_error());
MysqL_select_db('devcake', $con);
// Get the variables.
$query = "UPDATE mytable SET favorite=".$_POST['favorite'] . "
WHERE id=".$_POST['id'] . ";";
MysqL_query($query);
MysqL_close($con);
?>
解决方法:
这是我使用的代码(感谢塞缪尔)
$('input[name=favorite]').live("click",function(){
var id = $(this).attr('id');
if($(this).attr('checked')) {
var favorite = 1;
} else {
var favorite = 0;
}
$.ajax({
type:'GET',
url:'favorites.PHP',
data:'id= ' + id + '&favorite='+favorite
});
//console.log('id: ' + id + ' Publico: '+publico + 'Value: '+value);
});
jQuery-使用带有MySQL数据库的无限滚动
我找到了一个很好的ajax / jquery无限滚动插件(http://hycus.com/2011/03/15/infinite-scrolling-like-new-twitter-with-php-mysql-jquery/),可以很好地适应我的内容,但是我遇到了一个问题-它只调用一次loadmore.PHP脚本.让我显示代码:
在我的index.PHP文件中:
<script type="text/javascript">
$(window).scroll(function(){
if($(window).scrollTop() == $(document).height() - $(window).height()){
$('div#loadmoreajaxloader').show();
$.ajax({
url: "loadmore.PHP?lastid=" + $(".postitem:last").attr("id"),
success: function(html){
if(html){
$("#postswrapper").append(html);
$('div#loadmoreajaxloader').hide();
}else{
$('div#loadmoreajaxloader').html('<center>No more posts to show.</center>');
}
}
});
}
});
</script>
本节将调用我的loadmore.PHP文件,并向其发送上一则帖子的ID.这仅在我第一次滚动到页面底部时才有效,它从loadmore.PHP加载条目,但不会再次调用loadmore.PHP.我的loadmore.PHP文件具有以下代码:
<?PHP
include('./includes/config.PHP');
if($_GET['lastid']){
$query = 'SELECT * FROM db WHERE id < "'.$_GET['lastid'].'" ORDER BY id DESC LIMIT 0,3';
$result = MysqL_query($query);
while ($rec = MysqL_fetch_object($result)) {
[SET MY VARS]
?>
[HTML & PHP disPLAYING MY POST]
<?PHP
}
}
?>
在第一个ajax调用之后显示的3个帖子完美地出现了,正是我希望它们以正确的数据显示的方式.但是在出现前3个帖子之后,我无法显示接下来的3个帖子.
因此,如果我在index.PHP上默认有5个帖子,则滚动到底部,ajax调用另外3个帖子,它们将完美显示,但是此后没有任何显示,即使还有很多帖子需要显示.我的问题在哪里,ajax / jquery向导?
解决方法:
仅在您第一次滚动时才满足您的“如果”条件.因此,从本质上讲,将触发该事件,而不是当您滚动到页面底部时,而是在您开始滚动时.用以下代码替换您的代码:
<script type="text/javascript">
var loading = false;
$(window).scroll(function(){
var h = $('#postswrapper').height();
var st = $(window).scrollTop();
// the following tests to check if
// 1. the scrollTop is at least at 70% of the height of the div, and
// 2. another request to the ajax is not already running and
// 3. the height of the div is at least 500.
// You may have to tweak these values to work for you.
if(st >= 0.7*h && !loading && h > 500){
loading = true;
$('div#loadmoreajaxloader').show();
$.ajax({
url: "loadmore.PHP?lastid=" + $(".postitem:last").attr("id"),
success: function(html){
if(html){
$("#postswrapper").append(html);
$('div#loadmoreajaxloader').hide();
}else{
$('div#loadmoreajaxloader').html('<center>No more posts to show.</center>');
}
loading = false;
}
});
}
});
</script>
jQuery-绘制实时MySQL数据
我有以下代码从数据库获取值并执行简单的折线图(对警报的响应时间与UTC时间).它在静态时可以完美工作,但是现在我想“实时”获取数据(只是进行测试,例如每2秒获取每个元素,即2000毫秒).以下是以静态方式工作的代码:
<?PHP
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";
// Create connection
$conn = new MysqLi($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection Failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM data";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table><tr><th>User</th><th>Zulu</th><th>Server Time</th><th>Sample</th><th>Response Time</th></tr>";
// output data of each row
$dataset1 = array();
while($row = $result->fetch_assoc()) {
echo "<tr><td>" . $row[""]. "</td><td>" . $row[""]. "</td><td>" . $row[""]. "</td><td>" . $row[""]. "</td><td>" . $row[""]. "</td></tr>";
$dataset1[] = array(floatval($row[""]),intval($row[""]));
}
echo "</table>";
} else {
echo "0 results";
}
$conn->close();
?>
如我们所见,数据存储在$dataset1变量中,然后我有一个简单的脚本对其进行绘制:
<script>
//put array into javascript variable
var dataset1 = <?PHP echo json_encode($dataset1); ?>;
var data = [
{
data: dataset1,
}
];
var options = {
};
$(function () {
$.plot($("#placeholder"), data,options);
});
</script>
我的问题是:我如何用这个$dataset1“玩具”每2000 ms绘制一次?
这就是我得到的:
解决方法:
如果每2秒需要一次,则应使用.setTimeout(),因为.setInterval()可能不准确.
您可能需要tweek这样才能使值保留在每次调用getData函数时.最好的方法是将它们存储在传递给函数的元素中.
如果您希望我对此进行测试并为其创建JS fiddle,则需要发布HTML代码.
(function($){
$(function(){ //document.ready
});
(function getData(element){
var xval = xval ? xval : 0;
var yVal1 = Math.floor(Math.random()*11);
var yVal2 = Math.floor(Math.random()*11);
var datum1 = [xVal, yVal1];
var datum2 = [xVal, yVal2];
var data = data ? data : [[],[]];
var plot = $.plot(element, data);
data[0].push(datum1);
data[1].push(datum2);
if(data[0].length>10){
data[0] = data[0].splice(1);
data[1] = data[1].splice(1);
}
xVaL++;
plot.setData(data);
plot.setupGrid();
plot.draw();
}
setTimeout(function(){
getData(element);
}, 2000);
})($('#chart4'));
})(jQuery);
今天的关于如果已经使用了用户名,则jQuery检查mysql数据库和如果用户已经知道程序的名称和所在的文件夹路径的分享已经结束,谢谢您的关注,如果想了解更多关于jquery – 使用AJAX检查数据库中是否存在用户名、jquery – 如何在复选框条件更改时使用ajax更新mysql数据库?、jQuery-使用带有MySQL数据库的无限滚动、jQuery-绘制实时MySQL数据的相关知识,请在本站进行查询。
本文标签: