PDA

View Full Version : سوال: ترکیب متغیر php با متغیر javascript



javid2005
یک شنبه 27 اردیبهشت 1388, 14:36 عصر
سلام دوستان ...
خسته نباشید ...

همانطوری که می دونید در جاوااسکریپت متغیر ها با کد زیر تعریف میشن

var javid= x;

فرض کنید من در php متغیری رو به صورت زیر تعریف کردم ....

$context['year'] = array(
'num' => $_REQUEST['year']
);


با تعریف کد php بالا من می تونم به متغیر

$year['num']
دسترسی داشته باشم ...

خب ...
می خوام در کدهای جاوااسکریپت وقتی متغیر javid رو تعریف می کنم و متغیر

$year['num'] رو برابر با عدد 2005 قرار میدم و متغیر سال رو به متغیر javid اضافه می کنم نتیجه متغیر من javid2005 بشه ...

مثلا بیام در جاوااسکریپت متغیر رو اینطوری تعریف کنم

var javid+$year['num']= x;
فرقی با کد زیر نداشته باشه ...

var javid2005= x;

البته قبلا متغیر سال رو برابر 2005 قرار دادم ...


من از هر روشی که به ذهنم رسید نتونستم اینکار رو انجام بدم ...
شاید اصلا این راه حلش نیست ...
از دوستانی که با php و javascript آشنایی دارند خواهش می کنم کمکم کنند ...

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

farshad_persia
یک شنبه 27 اردیبهشت 1388, 14:41 عصر
این کد رو



var javid+$year['num']= x;

به این کد تبدیل کن ببین جواب میده ؟؟


var javid+<?php echo $year['num']; ?>= x;

javid2005
یک شنبه 27 اردیبهشت 1388, 15:43 عصر
ارور میده

به این کد هم تبدیل می کنم ارور میده-->

var javid+<?=$year['num'] ?>= x;

به این کد هم تبدیل می کنم باز ارور میده -->

var 'javid'+' $year['num']'= x;


یه نکته مهم هم وجود داره
همون کدی که شما فرمودی یعنی این کد:

var javid+<?php echo $year['num']; ?>= x;
اگه به کد زیر تبدیل کنم:

var javid+<?php echo $year; ?>= x;

اروری نمیده ... یعنی در حقیقت برای هیچ یک از حالاتی که تست کردم ارور نمیده
ولی من می خوام از آرایه استفاده کنم ...

ممنون از اینکه سریع پاسخ دادید ...
الان باید چیکار کنم؟

farshad_persia
یک شنبه 27 اردیبهشت 1388, 15:58 عصر
لطف کنید بگین تو همون کد یعنی


var javid+<?php echo $year['num']; ?>= x;

چه اروری دارید ؟؟؟


و اینکه یک نکته در این آرایه که در پست قبلتون گفتین


$context['year'] = array(
'num' => $_REQUEST['year']
);
برای دسترسی به مقدار year باید اینجوری بنویسین


$context['year']['num']

باز هم اگر مشکلتون حل نشد کل کد رو در اینجا بزارین تا براتون حل کنم

javid2005
یک شنبه 27 اردیبهشت 1388, 16:35 عصر
ارورش اینه:

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';'

موضوع از این قراره که می خوام قسمت بالای هر category توی یه فروم به صورت جاوااسکریپت باز و بسته بشه ....
این عمل رو برای یه قسمت خاص می تونم انجام بدم ولی برای n مجموعه (category) نمیتونم ...
می خوام متغیری که به نام infoheader در جاوااسکریپت تعریف شده رو با یک متغیر php که همون id هر category هست ترکیب کنم تا برای هر category جاوااسکریپت متفاوت نسبت به بقیه category ها ساخته بشه و دچار تداخل نشن ...
این کدی که پایین براتون قرار دادم مربوط به یه مجموعه منحصر به فرد هست ولی می خوام این کد برای n مجموعه عمل کنه ...

اگه نیازی به توضیح بیشتر هست به من اطلاع بدید ...

ای کاش از همون اول کل کد رو براتون قرار میدادم ...


echo '
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
// And create the info center object.
var infoHeader= new smfToggle("upshrinkIC", ', empty($options['collapse_header_ic']) ? 'false' : 'true', ');
infoHeader.useCookie(', $context['user']['is_guest'] ? 1 : 0, ');
infoHeader.setOptions("collapse_header_ic", "', $context['session_id'], '");
infoHeader.addToggleImage("upshrink_ic", "/collapse.gif", "/expand.gif");
infoHeader.addTogglePanel("upshrinkHeaderIC");
// ]]></script>'; /* java script for collapse */


$first = true;
foreach ($context['categories'] as $category)
{
echo '
<table cellspacing="0" cellpadding="5" class="tborder" style="margin-top: ' , $first ? '0;' : '1ex;' , '' , $context['browser']['needs_size_fix'] && !$context['browser']['is_ie6'] ? 'width: 100%;' : '', '">';

$first = false;


echo '

<td class="catbgnew-r">
</td>
<td class="catbgnew" style="padding-top: 5px;" style="float: ', $context['right_to_left'] ? 'left' : 'right', ';">';



if ($category['can_collapse'])

echo'

<a href="#" onclick="infoHeader.toggle(); return false;"><img id="upshrink_ic" src="', $settings['images_url'], '/', empty($options['collapse_header_ic']) ? 'collapse.gif' : 'expand.gif', '" alt="*" title="', $txt['upshrink_description'], '" />


<span class="cattitle">' , $category['name'],'</span></td>

<td class="catbgnew-l"></td></table>

<div id="upshrinkHeaderIC"', empty($options['collapse_header_ic']) ? '' : ' style="display: none;"', '>

javid2005
دوشنبه 28 اردیبهشت 1388, 23:37 عصر
کسی نیست کمکم کنه؟؟؟
هر کسی بتونه این مشکل منو حل کنه 1 سال هاست 50 مگابایتی با کیفیت بهش هدیه میدم ...

hamidsos
جمعه 24 آذر 1391, 12:37 عصر
بفرمایید:

<?php $simple = 'simple string'; $complex = array('more', 'complex', 'object', array('foo', 'bar')); ?> <script type="text/javascript"> var simple = '<?php echo $simple; ?>'; var complex = <?php echo json_encode($complex); ?>; </script>