PDA

View Full Version : اجرای یک تابع از درون یک فایل دیگر



IMANAZADI
چهارشنبه 21 بهمن 1394, 14:19 عصر
با سلام
فرض کنید سه فایل a.php , b.php , c.php داریم


فایل b.php به شکل زیر است


include_once('c.php');
$m=new classC();


if(isset($_GET['action']) && !empty($_GET['action']))
{
$action = $_GET['action'];
switch($action)
{
case 'xxx' : echo $m->createxxx() ; break;
case 'zzz' : echo $m->createzzz() ; break;
case 'yyy' : echo $m->createyyy($_GET['parameter']) ; break;
case 'save' : echo $m->save($_GET['parameter']) ; break;
}


}





فایل c.php به شکل زیر است




class metreh{


public function createxxx()
{......}




public function createyyy($parameter)
{......}




public function createzzz()
{......}




public function save($parameter)
{......}




}





چطوری میتونم وقتی فایل a.php لود شده ، این دستور رو اجرا و جواب رو در همون صفحه a.php نمایش بدیم






b.php?action=yyy&parameter=test

mohammadgsp
چهارشنبه 21 بهمن 1394, 22:17 عصر
فایل b.php به شکل زیر است


include_once('c.php');
$m=new classC();



با سلام . اولا در فایل b.php اشتباه object ساختید. چون اصلا کلاسی با نام classC وجو نداره و به این صورت هست:


include_once('c.php');
$m=new metreh();


خب . اگر میخواید با اجرای صفحه یa.php به صورت خودکار مقدار دهی و اجرا و سپس در همون فایل a.php نتیجه نشون داده بشه..کد هاتون رو به صورت زیر تغییر بدید.


محتویات فایل c.php


<?php
class metreh{


public function createxxx()
{
return "xxx";
}




public function createyyy($parameter)
{
return "yyy";
}




public function createzzz()
{
return "zzz";
}




public function save($parameter)
{
return "save";
}




}
?>

که داخل فانکشن ها هرچیزی که دوست دارید رو میتونید برگردونید

محتویات فایل b.php



<?php
include_once('c.php');
$m=new metreh();


if(isset($_GET['action']) && !empty($_GET['action']))
{
$action = $_GET['action'];
switch($action)
{
case 'xxx' : $result = $m->createxxx() ; break;
case 'zzz' : $result = $m->createzzz() ; break;
case 'yyy' : $result = $m->createyyy($_GET['parameter']) ; break;
case 'save' : $result = $m->save($_GET['parameter']) ; break;
}

header('location:a.php?res='.$result.'');
}
?>


و محتویات فایل a.php:

<?php
if(isset($_GET['res']) && !empty($_GET['res'])){
$res = $_GET['res'];
switch($res)
{
case 'xxx' : echo "xxx" ; break;
case 'zzz' : echo "zzz" ; break;
case 'yyy' : echo "yyy" ; break;
case 'save' : echo "save" ; break;
}
}else{
header('location:b.php?action=yyy&parameter=test');
}

?>


درود:قلب:

IMANAZADI
پنج شنبه 22 بهمن 1394, 06:31 صبح
با آژاکس اصولی تر نیست
من اینو انتهای صفحه نوشتم



window.onload=function(){
parameter='test';
//doAjax('b.php','action=load&parameter='+parameter,'GET','');





یک سوال اگر بخواهیم با header یک پارامتر را به روش post به یک صفحه ارسال کنیم باید چطور عمل کنیم