PDA

View Full Version : سوال: باز شدن صفحه در پنجره جدید



ablofazlkianianboohi
جمعه 24 آذر 1391, 20:17 عصر
سلام دوستان
من یک سری دستورات دارم که کاربر وقتی روی یک دکمه کلیک می کنه یکسری اتفاقات می افته. حالا می خوام کاری کنم که در یک پنجره جدید سایتی باز بشه. اما نمی دونم چطور باید این کار را انجام بدهم. از دستور header(location) استفاده می کنم؛ اما تو صفحه جاری باز می شه.

چه کنم؟

nariman_t
جمعه 24 آذر 1391, 20:35 عصر
یه کدی چیزی میزاشتید بهتر بود برای این که وقتی روی یک لینک کلیک میشه بخوای صفحه رو در پنچره جدید باز کنی که همون از خاصیت target. استفاده می کردیم حالا شما بگید مشکلتون چجوریاست تا بهتر بگیم چند چنده

ablofazlkianianboohi
شنبه 25 آذر 1391, 20:00 عصر
دوست عزیز
ممنون از اینکه توجه کردید و پاسخ دادید

ببینید:
من یک دکمه با نام btn دارم و کد زیر :



if(isset($_POST['btn']))
{
header("Location: http://www.yahoo.com");
}


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


بازم تشکر

siavashsay
شنبه 25 آذر 1391, 20:12 عصر
بجای Header("location:...") از این دستور استفاده کنید :


echo "<META http-equiv='refresh' content='1;URL=http://google.com' target='_blank'>";

و اگر خواستید میتونید از جاوا هم استفاده کنید . به اینصورت :


<?php
echo "<script> window.open('www.your.url','_blank');</script>";
?>

ablofazlkianianboohi
چهارشنبه 29 آذر 1391, 19:38 عصر
دوستان ممنون از راهنمایی هاتون
اما باز اون چیزی که می خواستم نشد. بزارید یکبار اون قسمت از پروژه رو که به مشکل برخوردم رو تشریح کنم:

من یک صفحه ای دارم که داره دو تا combobox هست. تو combobox اول به طور مثال انتخاب می کنی "کامپیوتر" combobox دوم زیر شاخه های کامپیوتر رو می آره. مثلا نرم افزار،سخت افزار و غیره. حالا یک دکمه دارم که وقتی روی اون کلیک می کنم داخل یک selectbox کتاب های مربوط به اون شاخه رو نشون می ده. و یک دکمه دیگه به نام دانلود. من می خوام وقتی روی دانلود کلیک شد فایل pdf اون کتاب دانلود بشه. این رو بگم که برنامه نویسی های مربوط به دانلود رو انجام دادم. یعنی اینکه بره آدرس فیلد کتاب pdf رو بخونه و غیره. فقط مشکل اینه که می خوام وقتی دانلود رو زدم فایل دانلود بشه بدون اینکه صفحه refresh بشه.
حالا این جا رو چه کنم؟



تشکر

Unique
پنج شنبه 30 آذر 1391, 03:11 صبح
اگه صفحه refresh میشه مشکل از کد دانلود شماست ، کد دانلود را بزارین تا ببینیم کجاش مشکل داره.

ablofazlkianianboohi
دوشنبه 04 دی 1391, 21:07 عصر
دوستان
بگذارید مشکل رو از ابتدا بگم:

من دوتا combobox دارم که تو combobox اول به طور مثال انتخاب می کنی "کامپیوتر"، combobox دوم به طور اتوماتیک دارای محتوا می شود و مثلا انتخاب می کنیم "نرم افزار".
حالا یک دکمه دارم به نام "نمایش کتاب". وقتی می زنی از دیتابیس نام کتاب ها رو می خونه و درون یک listbox اضافه می کنه. حالا یک دکمه دارم که برای دانلود pdf کتاب مربوطه هست. می خوام وقتی از listbox کتاب رو انتخاب کردم و دکمه رو زدم کتاب رو دانلود کنه. تو دانلود مشکل نیست. مشکل اینجاست که وقتی دکمه را می زنی صفحه refresh می شه و کتاب های که نمایش داده شده بود می ره و لیست باکس پاک میشه و دوباره از اول باید "کامپیوتر" و "نرم افزار" رو انتخاب کنی.
حالا چه کنم وقتی دانلود رو زدم کتاب دانلود بشه اما صفحه refresh نشه یا یه حالتی که listbox پاک نشه؟؟؟


تشکر

Unique
سه شنبه 05 دی 1391, 02:10 صبح
به نظر من شما مشکل توی کد دانلود دارین وباید اون را دید چون وقتی شما از سمت سرور response غیر از html یا چیزی که Browser باید نشون بده بیاد صفحه تغییر نمیکنه و download wizardباز میشه ! مگه اینکه شما دارین یک اضافه کاری توی header های ارسالی انجام میدین !

اما برای باز شدن یک پنجره جدید هم میتونید پس از انتخاب توی Listbox مقدار id متناظر را به این تابع بدین :

function downloadPage(id){
var newWindow = window.open("download.php?id=" + id,"Wind","status,height=100,width=100");
newWindow.focus();
}

ablofazlkianianboohi
سه شنبه 05 دی 1391, 08:44 صبح
دوست عزیز
ممنون از پیگیری و راهنماییتون

اما این کدی که شما نوشتید برای javascript هست. در صورتی که تمام کد بنده PHP کار شده.

در مورد کدها هم باید خدمتتون عرض کنم کدها بسیار زیاد هست. چون صفحه HTML هم دارم. اما پیچیده نیست و تو تاپیک قبلی عرض کردم.
بنده یک لیست باکس دارم که تعدادی کتاب را نمایش میده و یک Button. می خوام وقتی Button کلیک شد فایل PDF کتاب انتخاب شده دانلود بشه. بدون اینکه صفحه Refresh بشه. چون Listbox پاک میشه و مجدد باید از combo مجموعه را انتخاب کرد.
اگر باز هم نیاز به کدها هست بفرمایید تا قرار دهم.


تشکر

Unique
سه شنبه 05 دی 1391, 13:59 عصر
باز هم میگم که مشکل شما از کد download هست و باید اون تیکه را ببینم !


اما این کدی که شما نوشتید برای javascript هست. در صورتی که تمام کد بنده PHP کار شده.
اون چیزی که کاربر میبینه html هست و شما میتونید از javascript استفاده کنید پس لطفا کمی با دقت بخونید :


<script language="javascript">
function downloadPage(id){
var newWindow = window.open("download.php?id=" + id,"Wind","status,height=100,width=100");
newWindow.focus();
}
</script>
<select id="bookslist" size="6">
<option value="1">Books 1</option>
<option value="2">Books 2</option>
<option value="3">Books 3</option>
<option value="4">Books 4</option>
<option value="5">Books 5</option>
<option value="6">Books 6</option>
<option value="7">Books 7</option>
<option value="8">Books 8</option>
</select>
<input type="button" onclick="downloadPage(document.getElementById('bookslist'). value)" value="Download" />

نکته : راستی دوست عزیز از multiple استفاده نکنید و size را بگذارید روی itemتعداد هایی که میخواین نشون بدین وگرنه با value به مشکل میخورین.

ablofazlkianianboohi
چهارشنبه 06 دی 1391, 17:58 عصر
دوست عزیز
بازم ممنون
اما کتاب های من به صورت دستی وارد نمیشه. بلکه از دیتابیس با PHP خونده میشه و درون option ها قرار می گیره. اینم کد مورد نظر:


<div id="body_top">بخش دانلود</div>

<div id="downloads">
<form name="books_form" method="post" action="">
<label for="section">بخش: </label>
<select name="number_query" onchange="result(this.value);">
<?php
$result = mysql_query("SELECT * FROM section" , $myconn);
for($i = 0 ; $i != mysql_num_rows($result) ; $i++)
{
$current_id=@mysql_result($result,$i,0);
echo("<option value='".$current_id."'>");

print(@mysql_result($result,$i,1));
echo("</option>");
}
?>
</select>

<div id="result">

<label for="cat">مجموعه: </label>
<select name="cat" id="cat">
</select>
</div> <!-- result -->
<input type="submit" name="view_btn" id="view_btn" value="نمایش کتاب ها">
</form>
<?php
if(isset($_POST['view_btn']))
{
$category=$_POST['cat'];
$id="zero";

$result = mysql_query("SELECT * FROM category" , $myconn);
for($i = 0 ; $i != mysql_num_rows($result) ; $i++)
{
if(@mysql_result($result,$i,2)==$category)
{
$id=@mysql_result($result,$i,0);
}
}

$result_books = mysql_query("SELECT * FROM books" , $myconn);
echo("<form method='post' action='s.php'>");
echo("<select name='books' id='books' size='8' class='selected'>");

for($i = 0 ; $i != mysql_num_rows($result_books) ; $i++)
{
if(@mysql_result($result_books,$i,1)==$id)
{
echo("<option>");
echo(@mysql_result($result_books,$i,2));
echo("</option>");
}
}

echo("</select>");
echo("<input type='submit' name='btn' id='btn' value='دانلود' class='download_btn'/>");
echo("</form>");
} // End isset(view_btn)


if ($id=="zero")
{
echo "مجموعه انتخاب شده خالی می باشد!";
}
if(isset($_POST['btn']))
{
$selectbook = $_POST['books'];
$result = mysql_query("SELECT * FROM books" , $myconn);
for($j = 0 ; $j!= mysql_num_rows($result) ; $j++)
{
if(@mysql_result($result,$j,2)==$selectbook)
{
$url=@mysql_result($result,$j,7);
}

}

if ($url=="")
{
echo ("متاسفانه کتاب انتخاب شده دارای فایل الکترونیکی نمی باشد!");
//return(0);
}
else
{
نمی دونم چی بنویسم
}
?>
</div> <!-- downloads -->

Unique
پنج شنبه 07 دی 1391, 01:45 صبح
من فقط مثال زدم ! کدی که براتون گذاشتم را با php خودتون generate کنین !
مشکل شما هم از اینه که دارین فرم را submit میکنین ! از همون قالب من استفاده کنید.

توجه : مطمئن باشین کدی که گذاشتم کار شما را راه میندازه ، بجای اینکه بگین من با php و شما دستی و این حرفا کامل کد من را بخونین اگه مشکلی در فهمیدن قسمتی دارین بپرسین وگرنه جواب شما همینه مگه اینکه قسمتی از کد که میگین دانلود میشه ولی refresh میشه را بگذارین نه اینکه بگین "نمی دونم چی بنویسم" ، که اگه واقعا نمیدونین یا باید کاربر را redirect کنین به فایل با مسیر اصلی یا با توابع header فایل را برای کاربر بفرستین.