سلام دوستان یک سوال؟
چطور میتونم یک تابع جاوا اسکریپت رو باphp فراخوانی؟
من این تابع رو میخوام با php صدا بزنم باید چی کار کنم؟؟
function loginfailed()
{
$( "#loginfailed" ).dialog({
show: "dorp",
hide: "dorp"
});
}
Printable View
سلام دوستان یک سوال؟
چطور میتونم یک تابع جاوا اسکریپت رو باphp فراخوانی؟
من این تابع رو میخوام با php صدا بزنم باید چی کار کنم؟؟
function loginfailed()
{
$( "#loginfailed" ).dialog({
show: "dorp",
hide: "dorp"
});
}
عزیز اینکه نمیشه شما رویداد سمت کلاینت رو روی سرور صدا بزنید. شما بفرمایید چه موقع و تحت چه شرایطی میخواین این تابع فراخوانی بشه تا کد مناسب رو برای اینکار بگذاریم. ضمناً این سؤال ربطی به PHP نداره و مربوط به jQuery هست. موفق باشید.
من یه صفحه لوگین دارم میخوام وقتی کاربر نام کاربری یا رمز رو اشتباه وارد کرد یک پیغام بده برای این کار url رو جک میکنم اگر login-failed بود پیغام میده .
<?php
if(isset($_GET['login-failed']))
{
echo' <script language="javascript">
alert("نام کار بری یا رمز عبور اشتباه است");
</script>';
}
?>
حالا میخوام به جای این alert که نوشتم این تابع اجرا بشه .
function loginfailed()
{
$( "#loginfailed" ).dialog({
show: "dorp",
hide: "dorp"
});
}
خوب این طراحی از اساس اشتباهه چون شما میخواین سمت کاربر نام کاربری و رمز عبور چک بشن و سمت سرور اون تابع مربوطه رو صدا بزنید، درصورتی که حتماً میدونید دیتابیس سمت سرور هست و نمیشه ازطریق کلاینت بهش دسترسی داشته باشیم چون باید نام کاربری و... رو برای اتصال بنویسیم که خوب طبیعتاً با یک View Source تمام اطلاعات مهم و امنیت و... رو از دست خواهیم داد. بجای اینکار، یک اسکریپت checklogin.php اینطوری بنویسید:
$result = 'failed';
if(isset($_GET['user'], $_GET['pass'])) {
mysql_connect('localhost', 'root', '') or die('failed');
mysql_selec_db('dbname') or die('failed');
mysql_query('SET NAMES \'utf8\'');
$user = strtolower(mysql_real_escape_string($_GET['user']));
$pass = md5(mysql_real_escape_string($_GET['pass']));
$query = mysql_query("SELECT * FROM `users` WHERE (LOWER(`user`)='{$user}' AND `pass`='{$pass}')");
if($query && mysql_num_rows($query) > 0) {
$result = 'successful';
}
}
echo $result;
حالا توی صفحه میتونید چنین کدی بگذارین:
موفق باشید.کد HTML:<!doctype html>
<html>
<head>
<title>Your TITLE</title>
<meta charset="utf-8"/>
<script src="jqmin.js" type="text/javascript"></script>
<script src="jquimin.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#loginfailed").hide();
$("#check").click(function() {
$.ajax({
type: "get",
url: "checklogin.php",
data: "user="+$("#user").val()+"&pass="+$("#pass").val(),
success: function(data) {
if(data != "successful") {
$("#loginfailed").dialog({
show: "drop",
hide: "drop"
});
}
}
});
});
});
</script>
<link href="jqui.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p>Username: <input id="user" type="text"/></p>
<p>Password: <input id="pass" type="password"/></p>
<input id="check" type="button"/>
<div id="loginfailed">Login Failed</div>
</body>
</html>