رفتن به مطلب

مشکل در ویرایش کد php


پست های پیشنهاد شده

سلام

من یه مشکل دارم و نمیدونم چجوری درستش کنم

بعنوان مثال کد زیر رو میزارم:


<div class="msc mscselect" data-msc="1">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>
<div class="msc mscselect" data-msc="2">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>
<div class="msc mscselect" data-msc="3">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>

حالا ما یک مقدار رو از صفحه اصلی با روش post به صفحه بعدی میفرستیم که قراره کد بالا رو به ما بده.

من میخوام مثلا اگه اون مقدار 1 باشه ، کد زیر رو به ما بده:


<div class="msc mscselect" data-msc="1">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>

اگه مقدار اون متغیر 2 بوده کد زیر رو به ما بده:


<div class="msc mscselect" data-msc="1">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>
<div class="msc mscselect" data-msc="2">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>

و همینجوری الی آخر.

من با گذاشتن شرط این کار رو انجام میدم:


<?php if($_POST['nm']=='1') {
echo"11111";
}
?>
<?php if($_POST['nm']=='2') {
echo"11111";
echo"22222";
}
?>
<?php if($_POST['nm']=='3') {
echo"11111";
echo"22222";
echo"33333";
}
?>

ولی مثلا وقتی متغیر 20 باشه باید 20 شرط بنویسم و اینجوری باید کلی کد نویسی کنم.

میخوام کد رو جوری ویرایش کنم که نیازی به اون همه شرط نویسی نباشه و خودش بفهمه با متغیر 1 این کد:



<div class="msc mscselect" data-msc="1">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>

با متغیر 2 این کد:


<div class="msc mscselect" data-msc="1">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>
<div class="msc mscselect" data-msc="2">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>

با متغیر 3 این کد:


<div class="msc mscselect" data-msc="1">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>
<div class="msc mscselect" data-msc="2">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>
<div class="msc mscselect" data-msc="3">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>

و الی آخر رو به ما بده

لینک به ارسال

خوب دوست عزیز حلقه ی for واسه همین روز هاس دیگه :))))

مقدار رو میزاری توی یک متغییر و حلقه for رو به اندازه اون تکرار می کنی مثال :


<?php
$adad = 12;
for ($i = 1; $i <= adad; $i++){
echo '<div class="msc mscselect" data-msc="' . $i . '">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>';
}
?>

موفق باشید.

لینک به ارسال

ممنون از پاسختون

راستش با پی اچ پی زیاد کار نکردم

من کد شما رو اینجوری تغییر دادم :


<?php if($_POST['nm']!=="") {
$adad = 12;
for ($i = $_POST['nm']; $i <= adad; $i++){
echo '<div class="msc mscselect" data-msc="'.$i.'">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>';
}}
?>

ولی اونجور که میخوام خروجی نمیده.

مثلا وقتی مقدار nm برابر 3 باشه کد زیر رو به ما میده:


<div class="msc mscselect" data-msc="3">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>

قسمت data-msc="3" رو عددش رو درست زده اما من میخوام کد زیر رو بده:


<div class="msc mscselect" data-msc="1">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>
<div class="msc mscselect" data-msc="2">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>
<div class="msc mscselect" data-msc="3">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>

یا اگه مقدار nm برابر 2 باشه کد زیر رو میده:


<div class="msc mscselect" data-msc="2">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>

در حالی که باید این کد رو بده:


<div class="msc mscselect" data-msc="1">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>
<div class="msc mscselect" data-msc="2">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>

ممنون میشم بیشتر راهنمایی کنید

لینک به ارسال

باید حلقه دو تا درست کنید

برای 20 تا


<?php
$x =1;
while($x<=20) {
if($nm == $x) {
for($y=1; $y<=$x ; $y++) {
$output = '<div class="" data-msc="'.$y.'">';
$output .= 'text';
$output .= '</div>';
}
}
$x+= 1;
}

(کد رو تست نکردم ممکنه علامتی چیزی از قلم افتاده باشه ولی اصلوب کار همینه)

که

[/size]
$nm = $_POST['nm'];

است

لینک به ارسال

باید حلقه دو تا درست کنید

برای 20 تا


<?php
$x =1;
while($x<=20) {
if($nm == $x) {
for($y=1; $y<=$x ; $y++) {
$output = '<div class="" data-msc="'.$y.'">';
$output .= 'text';
$output .= '</div>';
}
}
$x+= 1;
}

(کد رو تست نکردم ممکنه علامتی چیزی از قلم افتاده باشه ولی اصلوب کار همینه)

ممنون آقای فخار بجای $output باید echo می بود که درست شد

واقعا ممنون ازتون

ویرایش شده توسط kingblog
لینک به ارسال

@kingblog

شما میبایستی حلقتونو به این صورت مینوشتین تا درست کار کنه

<?php if($_POST['nm']!=="") {
for ($i = 1; $i <= $_POST['nm']; $i++){
echo '<div class="msc mscselect" data-msc="'.$i.'">
<div class="Tline Rayka1"><h2> ناز</h2><a href="http://www.kingblog.ir">سایر مطالب امروز</a></div>
</div>';
}}
?>

لینک به ارسال

ممنون بابت راهنمایی و جواب شما و دوستان دیگه

اما یه مشکل دیگه دارم

الان توی این کدها، اگر محتوای فیلد nm عدد باشه کار میکنه مثلا اگر 1 باشه یا اگه 2 باشه. و اگه توی فیلد یک متن بنویسیم دیگه کد مورد نظر ما رو نشون نمیده چون توی شرط ما گفتیم اگه مقدار nm کمتر از متغیر i باشه چه اتفاقی بیافته که یعنی مقدارش باید عدد باشه.

من میخوام مثلا اگه یک فیلد داشتیم و توی اون فیلد یک متن نوشتیم ، کد زیر رو نشون بده:


<div class="msc mscselect" data-msc="1">
<div class="Tline Rayka1"><h2>محتوای فیلد اول</h2></div>
</div>

و اگه سه فیلد داشتیم این کد رو:


<div class="msc mscselect" data-msc="1">
<div class="Tline Rayka1"><h2>محتوای فیلد اول</h2></div>
</div>
<div class="msc mscselect" data-msc="2">
<div class="Tline Rayka1"><h2>محتوای فیلد دوم</h2></div>
</div>
<div class="msc mscselect" data-msc="3">
<div class="Tline Rayka1"><h2>محتوای فیلد سوم</h2></div>
</div>

نام فیلدها مون هم اینجوریه:

nm1,nm2,nm3,nm4,nm5,...

قسمت data-msc="1" رو که با متغیر $i میشه نشون داد ولی نمیدونم چجوری کنم که محتوای فیلد رو هم سر جاش چاپ کنه

(خروجی کد که نشون میده یک تب منو هست که ما با نوشتن عنوان منوها در فیلدها، نتیجه رو در صفحه بعد مشاهده میکنیم.)

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

لینک به ارسال

میتونین از تابع is_numeric برای تشخیص عدد بودن مقدار استفاده کنید اگه مقدار متغییر عددی باشه true اگه نه false برمیگردونه

لینک به ارسال

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


<?php if(isset($_POST['nm1'])) {
$nm1 = $_POST['nm1'];
}
if(isset($_POST['nm2'])) {
$nm2 = $_POST['nm2'];
}
if(isset($_POST['nm3'])) {
$nm3 = $_POST['nm3'];
}
if(!empty($nm1 )) {
?>
کدهای مربوط به فیلد اول
<?php
}
if(!empty($nm2 )) {
?>
کدهای مربوط به فیلد دوم
<?php
}
if(!empty($nm3 )) {
?>
کدهای مربوط به فیلد سوم
<?php
}
?>

لینک به ارسال

ممنون آقای فخار ولی اون کدهایی که دادی خودم می دونستم میشه ولی اینجوری خیلی حجم و خطوط کد بالا میره.

شما فکر کنید برای فیلد اول باید کد زیر رو توی شرط قرار بدم:


<div id="menu">
<div class="menu">
<ul>
<li attr-catid0="1"><a attr-catid11="1" href=""><img src="" />عنوان منوی یک</a>
<ul>
<li attr-catid1="650">
<a href="">زیر شاخه منوی اصلی1</a>
<div class="new_mega_menu">
<div class="new_mega_menu_top"></div>
<div class="new_mega_menu_into">
<div class="new_block">
<h3><a href="">زیرشاخه</a></h3>
<ul>
<li attr-catid2="2072" >
<a href="">زیرشاخه</a></li>
</ul>

</div>

<img class="mega_menu_picture" data-src="" alt="اسباب بازي" title="اسباب بازي" />
</div>
</div>
</li>
</ul>
</li>
</ul>
</div>
</div>
<script>
$(function() {
var timer;
$(".menu > ul > li").hover(function(){
clearTimeout(timer);
$(".menu > ul > li").removeClass("new_menu_active");
$(this).addClass("new_menu_active");
$(".menu > ul > li > ul").hide();
$(this).find('ul').show();
$("#new_sub_menu").addClass("new_sub_menu_show");
});
$(".menu > ul > li").mouseleave(function(){
timer = setTimeout(function(){
$(".menu > ul > li > ul").hide();
$("#new_sub_menu").removeClass("new_sub_menu_show");
},3000);
});
});
</script>

و برای پر بودن دو فیلد کد زیر رو باید توی شرط دوم قرار بدم:


<div id="menu">
<div class="menu">
<ul>
<li attr-catid0="1"><a attr-catid11="1" href=""><img src="" />عنوان منوی یک</a>
<ul>
<li attr-catid1="650">
<a href="">زیر شاخه منوی اصلی1</a>
<div class="new_mega_menu">
<div class="new_mega_menu_top"></div>
<div class="new_mega_menu_into">
<div class="new_block">
<h3><a href="">زیرشاخه</a></h3>
<ul>
<li attr-catid2="2072" >
<a href="">زیرشاخه</a></li>
</ul>

</div>

<img class="mega_menu_picture" data-src="" alt="اسباب بازي" title="اسباب بازي" />
</div>
</div>
</li>
</ul>
</li>
<li attr-catid0="2"><a attr-catid11="2" href=""><img src="" />عنوان منوی دو</a>
<ul>
<li attr-catid1="650">
<a href="">زیر شاخه منوی اصلی 2</a>
<div class="new_mega_menu">
<div class="new_mega_menu_top"></div>
<div class="new_mega_menu_into">
<div class="new_block">
<h3><a href="">زیرشاخه</a></h3>
<ul>
<li attr-catid2="2072" >
<a href="">زیرشاخه</a></li>
</ul>

</div>

<img class="mega_menu_picture" data-src="" alt="اسباب بازي" title="اسباب بازي" />
</div>
</div>
</li>
</ul>
</li>
</ul>
</div>
</div>
<script>
$(function() {
var timer;
$(".menu > ul > li").hover(function(){
clearTimeout(timer);
$(".menu > ul > li").removeClass("new_menu_active");
$(this).addClass("new_menu_active");
$(".menu > ul > li > ul").hide();
$(this).find('ul').show();
$("#new_sub_menu").addClass("new_sub_menu_show");
});
$(".menu > ul > li").mouseleave(function(){
timer = setTimeout(function(){
$(".menu > ul > li > ul").hide();
$("#new_sub_menu").removeClass("new_sub_menu_show");
},3000);
});
});
</script>

حالا فکر کنید مثلا برای 20 تا فیلد یا بیشتر ، تعداد خطوط کدهایی که باید توی شرط قرار بدم چقدر زیاد میشه. ولی اگه یک شرط کلی باشه که خودش با توجه به تعداد فیلدها، تعداد کدها رو نشون بده خیلی راحت تره.

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...