PDA

View Full Version : اجرای کد php لابه لای کدهای جی کوئری



negar442
سه شنبه 05 اسفند 1393, 22:15 عصر
کد زیر رو در نظر بگیرید :


$.ajax({
url: "script.php",
data: { param1: "value1", param2: "value2" },
type: "GET"
context: document.body
}).done(function() {
// your code goes here
});

در خط دوم کد php که در صفحه دیگه قرار داره اجرا میشه ؛ ولی آیا راهی داره که کدهای php در دل کدهای جی کوئری اجرا بشه و یا جوری اجرا بشه که دیگه نیاز نباشه برای کدهای php یک صفحه جدید ساخته بشه؟

MMSHFE
سه شنبه 05 اسفند 1393, 22:59 عصر
دوست عزیز، کدهای PHP سمت سرور پردازش میشن و کدهای Javascript و درنتیجه jQuery سمت کلاینت. اول کدهای PHP پردازش میشن و نتیجه اجرای اونها برای کلاینت ارسال میشه. درنتیجه سمت کلاینت نمیشه کد PHP اجرا کرد. این کدی هم که گذاشتین، با jQuery و به روش AJAX داره یک اسکریپت PHP رو از سرور درخواست میکنه و پارامترها رو براش میفرسته و بعد جواب رو ازش میگیره و برحسب جواب، کارهای لازم رو دوباره سمت کلاینت انجام میده (تغییر صفحه یا هر کار دیگه).

seven7777777
سه شنبه 05 اسفند 1393, 23:05 عصر
با تایید جواب مدیر محترم باید بگم بستگی زیادی به کد داخل فایل اسکریپت داره . گاهی کد در حد استفاده از چند تابع سادس و میشه اونها رو احتمالا با توابع جی کوئری هم پیاده سازی کرد اما گاهی در فایل با بانک عملیاتی انجام میشه (که کلا هم اینطوره) که در این صورت حتما باید به همین طریق و در سمت سرور کدهای پی اچ پی اجرا بشن .

negar442
چهارشنبه 06 اسفند 1393, 12:10 عصر
مشکل من این چیزهایی که شما میگین نیست! من این نکته رو که کدهای پی اچ پی سمت سرور اجرا میشن و کدهای جی کوئری سمت کلاینت قبول دارم ولی حرف من اینه که در کدهایی که در پست شماره یک گذاشتم و در خط دوم داره به یک فایل خارجی مراجعه می کنه آیا میشه این فایل خارجی رو داخل همون صفحه استفاده کرد یا نه؟
مثلا در فایلهای html کدهای css رو میشه در همون صفحه استفاده کرد مثل کد زیر :


<!DOCTYPE html>
<html>

<head>
<style>
h1 {
color:blue;
font-family:verdana;
font-size:300%;
}
p {
color:red;
font-family:courier;
font-size:160%;
}
</style>
</head>

<body>
<h1>This is a heading</h1>
<p>This is a paragraph.</p>
</body>

</html>
و یا از یک فایل خارجی استفاده کرد مثل کد زیر :


<!DOCTYPE html>
<html>

<head>
<link rel="stylesheet" type="text/css"href="mystyle.css">
</head>

<body>
<h1>This is a heading</h1>
<p>This is a paragraph.</p>
</body>

</html>

hamedarian2009
چهارشنبه 06 اسفند 1393, 13:00 عصر
اگه منظورتون اینه به جای خط دوم که به یک صفحه php آدرس دهی شده بیاین کدهای اون صفحه رو به جاش داخل همون تابع جی کوئری بنویسین نه همچین چیزی امکان نداره چون همینطور که مهندس شهرکی هم گفتن نمیشه دستورات PHP رو سمت کلاینت اجرا کرد
اصرارتون برای اینکه توی همون صفحه انجام بشه چیه؟

negar442
چهارشنبه 06 اسفند 1393, 16:58 عصر
من یه جایی یه همچین کدهایی رو دیدم گفتم شاید بشه تعداد فایلهای پروژه رو کم کرد:



<script>
var stuff = <?php print $stuff; ?>;
var blah = "<?php print $blah; ?>";

// Do things in JS with stuff and blah here, no more PHP mixed in
</script>





$(document).ready(function(){
$('.selector').click(function(){
<?php
// php code goes here
?>
});
});

MMSHFE
چهارشنبه 06 اسفند 1393, 18:01 عصر
اینجا فرق میکنه. یکبار قبل از ارسال اسکریپت برای کلاینت، PHP اومده اونجا متغیرهای stuff$ و blah$ رو چاپ کرده و تموم شده کارش و دیگه توی صفحه PHP نداریم (میتونید با View Source بررسی کنید). اما چیزی که شما میخواین، اجرای یک فایل PHP در مکان موردنظره که تنها راهش اینه که فایل رو توسط AJAX در زمان موردنظر درخواست کنیم و پارامترهای لازم رو براش بفرستیم و جواب رو ازش بگیریم.