PDA

View Full Version : ارسال مقدار توسط JQ به متغیری در PHP



کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 01:18 صبح
سلام

از اساتید کسی میتونه مشکل من رو حل کنه... به بن بست رسیدم :(

من یه تابع دارم که id$ رو میگیره و بر اساس این id مقدار بازگشتی رو میده... همه چیز درسته ولی میخوام با Jquery این id رو ارسال کنم ولی ظاهرا مشکلی هست... هر کاری کردم

به صورت ساده ...


$GLOBALS['System']->Categories->Space($id);


اینم همراه با Jquery که به جای id مقدار val عنصر cs رو میوام بخونم ولی نمیشه که نمیشه....

سوال اینجاست که چطوری توسط Jquery مقداری رو به یه تابعی یا متغیری بدیم ..


$GLOBALS['System']->Categories->Space(

'<script type="text/javascript">/*<![CDATA[*/$(function(){$("#cs").val();});//]]></script>'

)

webtracker
یک شنبه 13 مرداد 1392, 04:21 صبح
ببینین فکر کنم خودتونم بدونید که فایل php سمت سرور اجرا میشه و کد جاوااسکریپت سمت کلاینت
پس اگه می خواید مقدار یک input رو باjq بگیرید و به php بفرستید از ajax می تونید استفاده کنید

این فایل پی اچ پی سمت سرور id.php


$id=$_POST['id'];
$Global['System']->Categories->Space($id);

این فایل سمت کلاینت id.html


<input id='cs' name='id' />
<script>
$(document).ready(function(){
$('#cs').change(function(){ $.post('id.php',{id:$(this).val()})
})
});
</script>

کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 10:43 صبح
خب یک مساله ای که هست اینه ... من دقیقا توی خود فایل PHP هستم ... این مسیر localhost/myscript/system/others/categories.php و داخل همین فایل PHP دارم این کار رو میکنم ولی خطا میگیره در داخل فایل HTML و دریافت و ارسال از طریق HTML مشکلی ندارم ولی داخل همین فایل PHP مسیر POST رو باید چطور تعریف کنم ؟

webtracker
یک شنبه 13 مرداد 1392, 10:55 صبح
شما الان کامپوننتی نوشتین یا ماژول؟شرمندم نمی فهمم مسیر پست به چی؟

کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 11:03 صبح
شما الان کامپوننتی نوشتین یا ماژول؟شرمندم نمی فهمم مسیر پست به چی؟

اگه واضح بگم من دارم یک سیستم مینویسم و این یک ماژول هست که تمام کار ها به صورت PHP صورت میگیره و در صورت نیاز از Jquery با استفاده از تگ های Jq مابین کد های PHP استفاده میکنم به صورت زیر...

نمونه :...



<script type="text/javascript">/*<![CDATA[*/$(function(){$("#'.$u.' a").Tabs();});//]]></script>




من الان در بین کد هایی هستم که در داخل تابع public static function Register به صورت PHP نوشتم و داخل همین تابع همون دستورات $Global['System']->Categories->Space($id); رو باید اجراء کنم یعنی این کد در صورتی که به جای id یک مقداری مثلا 1 رو بدیم رو قشنگ اجراء و اطلاعات رو نشون میده.

حالا لازمه اینرو هم توضیح بدم این $('#cs') که شناسه هستش هم شناسه یک ComBoBox هست که به صورت PHP تولید میشه و در بین همین تابع Register هست به صورت زیر...



System::Select('_maincat', System::Option(static::$lang['plzselect'],0,$values['_maincat']==0).$GLOBALS['System']->Categories->GetOptions($values['_maincat']),
array('id'=>'cs','class'=>'cs','tabindex'=>4))



یعنی در کل با HTML کاری نداریم فقط نتیجه کار در بیرون از سیستم HTML هست. و من باید کار رو بین همین PHP انجام بدم و خیلی هم خوب جواب میگیرم ولی خب الان این قسمت موندم ! :D

webtracker
یک شنبه 13 مرداد 1392, 11:16 صبح
پس ماژول واگه من متوجه شده باشم این ویو یا همون خروجی رو براتون درست می کنه.
یک سوال خودتونم می دونید که یک ماژول یک ویو ،یک کنترلر،یک رابط دیتابیس(ممکن نداشته باشه) داره اسم این فایل ها رو میشه بهم بدین و قسمت کنترلی که
این شناسه رو می گیره

کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 11:22 صبح
پس ماژول واگه من متوجه شده باشم این ویو یا همون خروجی رو براتون درست می کنه

بله یه ماژول هست که تو خود همین ماژول هم توابع وجود دارن و هم فرم همراه با کنترل ها تولید میشه.

webtracker
یک شنبه 13 مرداد 1392, 11:46 صبح
خوب وقتی شما بخواهید به همون صفحه ارسال کنید کافیه این طوری بنویسید

<script>
$("#cs").change(function () {


jQuery.ajax({
type: "POST",
data: $("#cs option:selected").val(),

});
</script>

MMSHFE
یک شنبه 13 مرداد 1392, 11:52 صبح
AJAX به خود اسکریپت که نمیتونید بزنید چون برنامه توی Loop بینهایت میفته (اسکریپت با هربار Load دوباره به خودش درخواست میفرسته). هرچند با یکسری ترفندها شاید بشه جلوی Loop بینهایت رو گرفت - مثلاً چک کنید اگه چیزی Post شده بود، کارهای مربوط به درخواست AJAX رو انجام بدین وگرنه اسکریپت، کار معمولی خودش رو انجام بده ولی این کار منطقی نیست و بهتره مقصد درخواستهای AJAX شما یک صفحه دیگه باشه که مقادیر رو تنظیم میکنه (اگه میخواین توی بقیه صفحات بتونید ازش استفاده کنید، توی سشن بگذارین و در بقیه اسکریپتها از سشن بخونید).

کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 12:03 عصر
بزارید یجوری ساده تر کنیم مسالرو..

آقا من الان بخوام یه متغیر عمومی دارم به نام $id توی همین فرم PHP.

حالا هر وقت این Comboxbox من عوض میشه value این Combobox بریزه تو این متغیر کلی که هست...


$("#cs").change(function(){


jQuery.ajax({
type: "POST",
id: 1,
});


یه همچین چیزی... ولی جواب نداد :(

webtracker
یک شنبه 13 مرداد 1392, 12:03 عصر
AJAX به خود اسکریپت که نمیتونید بزنید چون برنامه توی Loop بینهایت میفته (اسکریپت با هربار Load دوباره به خودش درخواست میفرسته). هرچند با یکسری ترفندها شاید بشه جلوی Loop بینهایت رو گرفت - مثلاً چک کنید اگه چیزی Post شده بود، کارهای مربوط به درخواست AJAX رو انجام بدین وگرنه اسکریپت، کار معمولی خودش رو انجام بده ولی این کار منطقی نیست و بهتره مقصد درخواستهای AJAX شما یک صفحه دیگه باشه که مقادیر رو تنظیم میکنه (اگه میخواین توی بقیه صفحات بتونید ازش استفاده کنید، توی سشن بگذارین و در بقیه اسکریپتها از سشن بخونید).

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

if(isset($_POST['data']))

webtracker
یک شنبه 13 مرداد 1392, 12:43 عصر
الان شما این رو امتحان کنید

<?php

if(isset($_POST['id']))
{
$id=$_POST['id'];
}
?>
<script>
$("#cs").change(function(){


jQuery.ajax({
type: "POST",
data:{id: 1},
});
</script>

کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 13:34 عصر
الان شما این رو امتحان کنید

<?php

if(isset($_POST['id']))
{
$id=$_POST['id'];
}
?>
<script>
$("#cs").change(function(){


jQuery.ajax({
type: "POST",
data:{id: 1},
});
</script>

نه متاسفانه خطای ... Fatal error: Function name must be a string رو میده برام.



if(isset($_POST['cid']))

{

$cid = $_POST['cid'];

}

'<script>

$("#cs").change(function(){

jQuery.ajax({

type: "POST",

data:{cid: 1},

});

</script>';

$GLOBALS['System']->Categories->GetINFO($cid);




البته این کد در حالت در صورتی که Change شدن عمل باید کنه ولی همین که فرم لود میزنم خطا میده حتی فرم لود نمیشه که حالا بیاد بالا و JQ در وضعیت $("#cs").change(function() کار کنه...

نمیدونم یه جورایی echo که میگیرم توی داخل تابع مقدار هیچی ارسال نمیشه...

webtracker
یک شنبه 13 مرداد 1392, 13:52 عصر
این رو هم بزارین چی؟





<script>

$('document').ready(function(){
$("#cs").change(function(){

jQuery.ajax({

type: "POST",

data:{cid: 1},

});
});
</script>';

کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 14:00 عصر
بازهم نشد :( فکر نکنم مشکل اجراء شدن JQ باشه ... من با همین روش قشنگ یه ماژول جستجوی پیشرفته نوشتم که اطلاعات رو هم ارسال میکنه هم میخونه ولی توی همین فرم نمیدونم چرا عمل نمیکنه !!! :((

خیلی مشکل عجیبی هست در تمام موارد ها جواب گرفتم... حالا که میخوام فقط مقدار $GLOBALS['System']->Categories->GetINFO($cid); این ID رو ارسال کنم موندم !!!

کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 14:04 عصر
در این حالت هم جواب نمیده !


if(isset($_POST['cid']))

{

$cid = $_POST['cid'];

}


$GLOBALS['System']->Categories->GetInfo('<script type="text/javascript">/*<![CDATA[*/$(function(){jQuery.ajax({type: "POST",data:{cid: 1},});});//]]></script>');

webtracker
یک شنبه 13 مرداد 1392, 14:29 عصر
می بخشید این تابع getinfo باعث اضافه شدن jquery به ویو میشه ؟ من که نوشتم کد رو کاملا ارسال میشه
108472

کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 14:45 عصر
نه این تابع برا خودش یه کار دیگه انجام میده این تابع در نهایت یک مقداری رو بر اساس همین ID که میخوام با JQuery بدم براش از دیتابیس WHERE = id میکنه و بر میگردونه...

هدفم اینه id رو با jq بفرستم به این تابع که کارش اینه :)

webtracker
یک شنبه 13 مرداد 1392, 15:15 عصر
منظورتون اینه


$cid;
if(isset($_POST['cid']))

{

$cid = $_POST['cid'];

}


$GLOBALS['System']->Categories->GetInfo($cid);

کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 15:29 عصر
منظورتون اینه


$cid;
if(isset($_POST['cid']))

{

$cid = $_POST['cid'];

}


$GLOBALS['System']->Categories->GetInfo($cid);

خب در این حالت بله لود میکنم البته مقدار $id=1; میزارم پیشفرض... چون JQ کار نیکمه..

اینم یک اسکرین شات به POST خطا میده... و به jquery.js

webtracker
یک شنبه 13 مرداد 1392, 15:44 عصر
این کد کاملی که نوشتم رو براتون می زارم


<html>
<head>
<script src="asset/jquery-1.9.1.min.js"></script>
<script>
$('document').ready(function() {
$("#cs").change(function() {
console.log('alert');
jQuery.ajax({
//url:document.location,
type: "post",
data: {cid: $("#cs option:selected").val()}
});
});
});
</script>
</head>
<body>
<select id='cs'>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<?php
$id;
if (isset($_POST['cid'])) {
echo $_POST['cid'];
}
?>


</body>
</html>


108482

کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 16:28 عصر
همه چیز درسته.... خارج از سیستم... ولی توی سیستم به کار میگیرم 503 Service Temporarily Unavailable این خطارو میگیرم نسخه jq رو هم عوض کردم بازم نشد... حتی همه چیز رو آوردن تو فیال قالب که HTML هست بازم خطای سرور میده.

کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 16:35 عصر
اینم جزئیات خطا...

: POST http://localhost/system/categories/request 503 (Service Temporarily Unavailable) jquery.min.js:6
send jquery.min.js:6
x.extend.ajax jquery.min.js:6
(anonymous function) request:146
x.event.dispatch jquery.min.js:5
v.handle jquery.min.js:5
x.event.trigger jquery.min.js:5
(anonymous function) jquery.min.js:5
x.extend.each jquery.min.js:4
x.fn.x.each jquery.min.js:4
x.fn.extend.trigger jquery.min.js:5
x.fn.(anonymous function) jquery.min.js:6
(anonymous function) request:689
c jquery.min.js:4
p.fireWith jquery.min.js:4
x.extend.ready jquery.min.js:4
q

کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 16:59 عصر
البته این فکر کنم واضح تر باشه... نمیدونم چرا این خطارو میده کسی میتونه راهنمایی کنه ؟

webtracker
یک شنبه 13 مرداد 1392, 17:02 عصر
می بخشید فایل که گفتین این localhost/myscript/system/others/categories.php
ولی مسیری که دادین http://localhost/system/categories/request
یعنی خودتون عوض کردین ؟

webtracker
یک شنبه 13 مرداد 1392, 17:04 عصر
این که کاملا اشتباه هستش لطفا alert ر و پاک کنید

از این کد استفاده کنید
jQuery.ajax({
//url:document.location,
type: "post",
data: {cid: $("#cs option:selected").val()},
success:function(){
alert('success');
}
});

کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 17:22 عصر
مسیر هارو من عوض میکنم از بابت مسیر ها موردی نیست... اینم اسکرین ها...
کد الان خطا نمیده ولی کار هم نمیکنه و همچنان خطای Service Temporarily Unavailable وجود داره. :گریه:

کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 17:26 عصر
فهمیدممممممممم مشکل چیه !!! ببینید دوست عزیزم من یه فایل PHP خارج از همین مسیر درست کردم


if(isset($_POST['cid']))

{

$cid = $_POST['cid'];


}

اینارو ریختم تو اون فایل و به این صورت خوندمو و ارسال شد و پیغام Success داد.



$.post("test.php",

{ cid: 1 },
function(data) {
alert("success");

}

);


حالا با این روش به جای روش قبل چطور میشه توی همین فایل ازش استفاده کرد من نمیخوام از فایل دیگه استفاده کنم. تو این روش نمیشه type: "post", رو تایین کرد :(

کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 17:29 عصر
کد رو از این حالت



$.post("test.php",

{ cid: 1 },
function(data) {
alert("success");

}

);


به این حالت تغییر میددم پست نمیشه.


$.post( type: "post",

{ cid: 1 },
function(data) {
alert("success");

}

);

webtracker
یک شنبه 13 مرداد 1392, 18:10 عصر
ببینین می تونید به این روشی که توضیح می دم شکل رو برام بفرستید:
108501

webtracker
یک شنبه 13 مرداد 1392, 18:12 عصر
کد رو از این حالت



$.post("test.php",

{ cid: 1 },
function(data) {
alert("success");

}

);


به این حالت تغییر میددم پست نمیشه.


$.post( type: "post",

{ cid: 1 },
function(data) {
alert("success");

}

);


آخه تو اولی کاملا مشخص url که باید بهش ارسال بشه ولی دومی اگه به همون صفحه ارسال میشه نه دیگر url.

کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 18:30 عصر
خدمت شما...

webtracker
یک شنبه 13 مرداد 1392, 18:58 عصر
شما اگه به جای type:"post بزارینtype:"get" ببینین چی می شه؟
یک کار دیگه هم می تونید بکنید که با ارسال این یک مقدار برگرد. یعنی اگه می تونید به جای نوشته های تو categories.php این رو بدارید


if (isset($_POST['cid'])) { echo $_POST['cid'];
}

کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 19:11 عصر
نه در این حالت ها جواب نمیده... :((

یعنی نمیشه هیچ جوری درون خود php اینو مشخص کرد !!!

این تیکه قشنگ جواب میده ولی نه در فایل خودم...



$.post("test.php",

{ cid: 1 },
function(data) {
alert("success");

}

);


اگه یجوری بشه به جای test.php مشخص کرد که اقا توی خود این فایل POST بزن کارمون جور میشه 3 روزه لنگ این مشکلم :(((((

webtracker
یک شنبه 13 مرداد 1392, 20:09 عصر
آقا شما این کد را به جای کد های categories.php بزارید بعد این آدرس رو وارد کنید:
http://localhost/system/categories/request?cid=1


if (isset($_GET['cid'])) { echo $_GET['cid'];
}


اگه دوباره تکرار کردم فقط می خوام مطمئن بشم

کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 20:24 عصر
:(( 503 Service Temporarily Unavailable نخیر فکر کنم قسم خورده که درست نشه

webtracker
یک شنبه 13 مرداد 1392, 21:07 عصر
خوب مشکل تو مسیردهی سیستمی که طراحی کردین.
چندتا احتمال دیگه هم گفتن شاید کد نوشته شده باگ داشته باشه شاید موقع اتصال به دیتابیس دچار مشکل میشه

شما از چه چیزی برای دیباگ پروژتون استفاده می کنید؟

کامبیز اسدزاده
یک شنبه 13 مرداد 1392, 21:25 عصر
مشکلی در ارسال و دریافت نیست ! مشکل اینه که تابع به این صورت $.post( type: "post", در هیچ یک از فایل های PHP کار نمیکند ! شما همین روش رور وی یک فیل PHP تست کنید منظورمو متوجه میشید :)

در بین HTML با تگ های <php? , ?> جواب میده ولی وقتی میخوایید در داخل خود فایل PHP با استفغاده از '' جدا کننده ها این کار رو کنید به کلی کار نمیکند ! تنها روشی که جواب میده استفاده از متد $.post("test.php", یعنی حتما باید ارسال به یک فایل خارج از مکان جاری ارسال کنیم بعد از اون جا بگیریم ولی من نمیخوام فایل اضافی برای این کار ایجاد کنم :)

webtracker
یک شنبه 13 مرداد 1392, 21:54 عصر
این کد

<?php
echo'
<script src="asset/jquery-1.9.1.min.js"></script>
<script> $("document").ready(function() {
$("#cs").change(function() {
url:"g.php",
jQuery.ajax({
url:document.location,
type: "post",
data: {cid: $("#cs option:selected").val()},
success:function(){
alert("asdas");
}
});
});
});</script>


<select id="cs">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
';

$id;
if (isset($_POST['cid'])) {
echo $_POST['cid'];
}
?>

اینم عکس
108516

کامبیز اسدزاده
دوشنبه 14 مرداد 1392, 01:19 صبح
این url:"g.php" ماله کجاست دقیقا ؟

کامبیز اسدزاده
دوشنبه 14 مرداد 1392, 01:29 صبح
اهان ... ببینید مشکل میدونید چیه ؟ من فایل PHP رو آوردم توی پوسه www/system/test.php اینجا جواب میده ولی وقتی میبرمش تو فولدر داخلی مثل www/system/others/test.php جواب نمیده !!!

خطای 403 (Forbidden) رو میدی دسترسی به فایل... به htaccess مربوط هست فکر کنم ...

webtracker
دوشنبه 14 مرداد 1392, 04:01 صبح
منم دو یا سه بار گفتم به شما مربوط به مسیردهی تون می شه
خدا رو شکر به یک جا مشترک رسیدیم.اما اگه شما در سیستمتون مسیردهی رو تعریف کرده باشین ممکنه حق دسترسی هم به بعضی قسمت ها نداده باشین

می بخشید url:"g.php" این یک اشتباه ،آخه تابع Callback این طوری براش متغییر تعریف نمیشه ،(ممشکلم مربوط به کپی و پست که تو ویندوزم دو سه روز قاطی کرد)

MMSHFE
دوشنبه 14 مرداد 1392, 08:10 صبح
همیشه عادت کنید مسیر کامل بدین. این کد رو تست کنید (اگه مسیر فایلها روی سیستم شما فرق میکنه، مسیرهای موجود در کد رو اصلاح کنید) :


<?php
if (isset($_POST['cid'])) {
echo $_POST['cid'];
}
else {
?>
<script src="http://localhost/system/asset/jquery-1.9.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$("document").ready(function() {
$("#cs").change(function() {
$.ajax({
type: "post",
url: "http://localhost/system/g.php",
data: "cid="+$("#cs:checked").val(),
success: function(result) {
alert("Result: " + asdas);
}
});
});
});
</script>
<select id="cs">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<?php
}
?>

کامبیز اسدزاده
دوشنبه 14 مرداد 1392, 09:15 صبح
وایییییییییییییییییییی میدونید چی شد ! در سیستم به خاطر اینکه go.php وظیفش اینه تممی مسیر هارو به index.php ریدایرکت کنه برای همین مسیر هارو منتقل میکنه من به جای http://localhost/system/g.php وارد کردم http://localhost/index.php مشکل حل شد !!!!! با اینکه تو فایل index.php هیچ چیزی نوشته نشده ولی باید مسیر رو اینطور تعریف کنیم !

سپاسسسسسسسسسسسسس از جناب آقای webtracker و مدیریت محترم بخش.

خدارو شکر بعد 3 روز مشکل با همکاری دوستان حل شد واقعا سپاس.

webtracker
دوشنبه 14 مرداد 1392, 09:45 صبح
آقا این این روبجای کدی که دارین بزارین چون مسیر مطلق تعریف کردین روی سرور دیگه جواب نمی ده


<script type="text/javascript">
$("document").ready(function() {
var url = window.location.href.split('/');
$("#cs").change(function() {
$.ajax({
url:url[0] + '//' + url[2]+'/index.php',
type: "post",
data: "cid="+$("#cs:checked").val(),
success: function(result) {
alert("Result: " + asdas);
}
});
});
});
</script>

کامبیز اسدزاده
دوشنبه 14 مرداد 1392, 10:10 صبح
آقا یه مشکل اساسی حالا ... من میتونم POST رو انجام بدم...


if( $_REQUEST["cid"] )
{
$cid = $_REQUEST['cid'];


}

این کد ها رو من در داخل تابع نوشتم همون فرم... ولی $cid رو اصلا نمیشناسه این ->>>>>>>>> $GLOBALS['System']->Categories->GetInfo($cid)

متغیر رو چطوری تعریف کنم کجا تعریف کنم که توی این Jquery بشناستش ؟

کامبیز اسدزاده
دوشنبه 14 مرداد 1392, 10:13 صبح
به این صورت هستش ...





if (isset($_POST['cid'])) {
$cid=$_POST['cid'];

'<script type="text/javascript">
$("document").ready(function() {
$("#cs").change(function() {


jQuery.ajax({

url:"http://localhost/Nanosoft/index.php",

type: "post",

data: {cid: $("#cs").val()},

success:function(){

$("input[name=\"myinfoval\"]").val("'.$GLOBALS['System']->Categories->GetInfo('.$cid.').'");

}

});

});
});
</script>';

}



ولی متاسفانه اصلا عمل نمیکنه :(( من میخوام داخل خود JQ این کد Function Return اجرا بشه.

webtracker
دوشنبه 14 مرداد 1392, 10:46 صبح
شما اگه echo نکنید که نمی فهمه js سمت کلاینت
مطمئن این کدی که نوشتین درست آخه این کوتیشن ها درست عمل می کنن

$GLOBALS['System']->Categories->GetInfo('.$cid.').

آخه اگه بخواد مقدارعوض بشه باید صفحه ریفرش بشه این طوری نمی تونید انجام بدید این صفحه باید از سمت سرور دوباره ارسال بشه تا سمت کلاینت استفاده بشه
شما از این استفاده کنید این رو هنوز امتحان نکردم:

if (isset($_POST['cid'])) {
echo $GLOBALS['System']->Categories->GetInfo($_POST['cid']);
}
else{
'<script type="text/javascript">
$("document").ready(function() {
$("#cs").change(function() {
jQuery.ajax({

url:"http://localhost/Nanosoft/index.php",

type: "post",

data: {cid: $("#cs").val()},

success:function(data){

$("input[name=\"myinfoval\"]").val(data);

}

});

});
});

</script>';
}

کامبیز اسدزاده
دوشنبه 14 مرداد 1392, 10:56 صبح
خب به این صورت اکو میکنم...

if( $_REQUEST["cid"] )
{
echo $_REQUEST['cid'];


}

جواب نمیده

کامبیز اسدزاده
دوشنبه 14 مرداد 1392, 10:59 صبح
آخه مساله اینه که $cid اصلا باید یجایی تعریف بشه به صورت PHP بعد !

webtracker
دوشنبه 14 مرداد 1392, 11:07 صبح
این کد الان برای من جواب میده

<?php

if (isset($_POST['cid'])) {
echo $_POST['cid'];
}
else
{
echo '<script src="asset/jquery-1.9.1.min.js"></script>
<script> $("document").ready(function() {
$("#cs").change(function() {
jQuery.ajax({
type: "post",
data: {cid: $("#cs option:selected").val()},
success:function(data){
alert(data);
}
});
});
});</script>


<select id="cs">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>';
}
?>

108546

کامبیز اسدزاده
دوشنبه 14 مرداد 1392, 11:13 صبح
خب این کد رو ببینید

if (isset($_POST['cid'])) {
$cid=$_POST['cid'];

'<script type="text/javascript">
$("document").ready(function() {
$("#cs").change(function() {


jQuery.ajax({

url:"http://localhost/Nanosoft/index.php",

type: "post",

data: {cid: $("#cs").val()},

success:function(){

$(".input[name=\"myinfoval\"]").val("'.$GLOBALS['System']->Categories->GetInfo('.$cid.').'");

}

});

});
});
</script>';

}


قسمتی که قرمز زخیم کردم یک متغیر PHP هست.

کامبیز اسدزاده
دوشنبه 14 مرداد 1392, 11:16 صبح
$(".input[name=\"myinfoval\"]").val("'.$GLOBALS['System']->Categories->GetInfo('.$cid.').'");

webtracker
دوشنبه 14 مرداد 1392, 11:20 صبح
شما اگه echo نکنید که نمی فهمه js سمت کلاینت
مطمئن این کدی که نوشتین درست آخه این کوتیشن ها درست عمل می کنن

$GLOBALS['System']->Categories->GetInfo('.$cid.').

آخه اگه بخواد مقدارعوض بشه باید صفحه ریفرش بشه این طوری نمی تونید انجام بدید این صفحه باید از سمت سرور دوباره ارسال بشه تا سمت کلاینت استفاده بشه
شما از این استفاده کنید این رو هنوز امتحان نکردم:

if (isset($_POST['cid'])) {
echo $GLOBALS['System']->Categories->GetInfo($_POST['cid']);
}
else{
'<script type="text/javascript">
$("document").ready(function() {
$("#cs").change(function() {
jQuery.ajax({

url:"http://localhost/Nanosoft/index.php",

type: "post",

data: {cid: $("#cs").val()},

success:function(data){

$("input[name=\"myinfoval\"]").val(data);

}

});

});
});

</script>';
}


من الان این کد بالا رو اصلاح کردم و گذاشتم

کامبیز اسدزاده
دوشنبه 14 مرداد 1392, 11:28 صبح
وای !

نتیجه ای که میده سورس صفحه هست :D

مثلا..<!DOCTYPE html><html prefix="og: http://ogp.me/ns#"><head><meta http-equiv="content-type" content="text/html; charset=utf-8" />

کامبیز اسدزاده
دوشنبه 14 مرداد 1392, 11:30 صبح
من میخوام ایندکس انتخاب شده یا مقدار انتخاب شده $("#cs") رو ارسال کنه به متغیری که توی $GLOBALS['System']->Categories->GetInfo($_POST['cid']); اینجا هست به نام cid

webtracker
دوشنبه 14 مرداد 1392, 11:39 صبح
فکر کنم باید از json استفاده کنید
می تونید خروجی کامل از قبلی رو برام بزارید

jalil_gh
دوشنبه 14 مرداد 1392, 11:39 صبح
شما اینو امتحان کنید. تو قسمت if کل صفحه رو ارسال کنید و تو قسمت else فقط مقدار Categories... رو ارسال کنید.

<?php

if (!isset($_POST['cid'])) {

?>

<script type="text/javascript">
$("document").ready(function() {
$("#cs").change(function() {
jQuery.ajax({
url:"http://localhost/Nanosoft/index.php",
type: "post",
data: {cid: $("#cs").val()},
success:function(data){
$("input[name='myinfoval']").val(data);
}
});
});
});
</script>

<?php
} else {
$cid = $_POST['cid'];
$GLOBALS['System']->Categories->GetInfo($cid);
echo $cid;
}
?>

کامبیز اسدزاده
دوشنبه 14 مرداد 1392, 12:25 عصر
فکر کنم تا پروژه رو نبینه کسی نمیشه کاریش کرد :((

کامبیز اسدزاده
دوشنبه 14 مرداد 1392, 12:32 عصر
شما تشریف بیارید این قسمت : http://forums.serverelite.net/

در صورت نیاز میتونم اینجا به صورت انحصاری کدهارو به صورت متن باز اشتراک بزارم تا همکاری کنیم در توسعه سیستم.

webtracker
دوشنبه 14 مرداد 1392, 12:45 عصر
این عکس اگه متن کاملش نمی شه نشون داد برام بفرستن
108549

108557ا

کامبیز اسدزاده
دوشنبه 14 مرداد 1392, 15:29 عصر
خب بزارید مسالرو کمی بازترش کنم.

قسمت ارسال POST با JQ درسته الان من فایلی که رو سیستم دارم همچین کلاسی براش قرار بدم...



class myclass
{

function myfunc($id)
{
$R=System::$Db->Query('SELECT `info` FROM `'.P.'categories` WHERE id='.$id.'');while($row = $R->fetch_assoc()){$info=$row["info"];}

return $info;

}

}

if( $_REQUEST["cid"] )
{
$id = $_REQUEST['cid'];
echo $info;
}



حالا در این کلاس من چطوری مقدار بازگشتی تابع رو بر اساس ورودی cid و ارسال در نظر بگیرم ؟

کلا این REQUEST خارج از کلاس عمل میکنه بخوام وارد کلاس بکنمش دیگه چیزیرو دریافتم نمیکنه ! :D یعنی مقدار تهی میده برام.

کامبیز اسدزاده
دوشنبه 14 مرداد 1392, 15:33 عصر
من تاحالا داخل کلاس یا داخل تابع از $_REQUEST[ استفاده نکردم فکر میکنم بایط طوری بنویسمش که بتونم داخل کلاس دریافت و از داخل کلاس و تابع خارجش ECHO کنم.

webtracker
دوشنبه 14 مرداد 1392, 17:29 عصر
کم یک از دیتابیس sample استفاده کردم و نمونه کد را براتون گذاشتم


<?php

class myclass {

public static function myfunc($id) {
$info = '';
$hd = mysql_connect('127.0.0.1', 'root', '') or die("Unable to connect to MySQL");
$db_select = mysql_select_db('sample', $hd);
$result = mysql_query("SELECT name FROM customer WHERE customer_id= $id");
while ($row = mysql_fetch_row($result)) {
$info = $row[0];
}
mysql_close($hd);
return $info;

}

}

if (isset($_POST['cid'])) {

echo myclass::myfunc($_POST['cid']);
} else {
echo '<script src="asset/jquery-1.9.1.min.js"></script>
<script> $("document").ready(function() {
$("#cs").change(function() {
jQuery.ajax({
type: "post",
data: {cid: $("#cs option:selected").val()},
success:function(data){
$("#myinfoval").val(data);
}
});
});
});</script>


<select id="cs">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input name="myinfoval" id="myinfoval">';
}
?>

اینم عکسش
108574