PDA

View Full Version : چطور میتونم یک تابع جاوا اسکریپت رو باphp فراخوانی?



af6900
جمعه 28 بهمن 1390, 09:19 صبح
سلام دوستان یک سوال؟

چطور میتونم یک تابع جاوا اسکریپت رو باphp فراخوانی؟

من این تابع رو میخوام با php صدا بزنم باید چی کار کنم؟؟



function loginfailed()
{
$( "#loginfailed" ).dialog({
show: "dorp",
hide: "dorp"

});
}

MMSHFE
جمعه 28 بهمن 1390, 09:48 صبح
عزیز اینکه نمیشه شما رویداد سمت کلاینت رو روی سرور صدا بزنید. شما بفرمایید چه موقع و تحت چه شرایطی میخواین این تابع فراخوانی بشه تا کد مناسب رو برای اینکار بگذاریم. ضمناً این سؤال ربطی به PHP نداره و مربوط به jQuery هست. موفق باشید.

af6900
جمعه 28 بهمن 1390, 10:16 صبح
من یه صفحه لوگین دارم میخوام وقتی کاربر نام کاربری یا رمز رو اشتباه وارد کرد یک پیغام بده برای این کار url رو جک میکنم اگر login-failed بود پیغام میده .



<?php
if(isset($_GET['login-failed']))
{

echo' <script language="javascript">
alert("نام کار بری یا رمز عبور اشتباه است");
</script>';

}

?>




حالا میخوام به جای این alert که نوشتم این تابع اجرا بشه .


function loginfailed()
{
$( "#loginfailed" ).dialog({
show: "dorp",
hide: "dorp"

});
}

MMSHFE
جمعه 28 بهمن 1390, 10:55 صبح
خوب این طراحی از اساس اشتباهه چون شما میخواین سمت کاربر نام کاربری و رمز عبور چک بشن و سمت سرور اون تابع مربوطه رو صدا بزنید، درصورتی که حتماً میدونید دیتابیس سمت سرور هست و نمیشه ازطریق کلاینت بهش دسترسی داشته باشیم چون باید نام کاربری و... رو برای اتصال بنویسیم که خوب طبیعتاً با یک 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;

حالا توی صفحه میتونید چنین کدی بگذارین:


<!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>

موفق باشید.