PDA

View Full Version : فرم جست و جو



hhamidy
دوشنبه 24 خرداد 1395, 12:26 عصر
سلام.

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


<div class="row">
<div class="col-md-12 menu-up">

<div class="col-md-4">

<div align="center">


<form class="navbar-form navbar-left" role="search" method="POST" action="index.php?pagesid=<?php echo $row["id"]; ?>" target="_parent">

<div class="form-group">
<input type="text" class="form-control" placeholder="جستجو در سایت myideal ..."; style="direction:rtl;" name="STextB">
</div>
<button typr="submit" class="btn btn-warning btn-search" name="SB" value="جستجو " >search</button>

</form>


<?php

if(isset($_POST['SB'])){
$SP = $_POST["STextB"];
$query = " select * from product where title like '%".$SP."%'";
$result = mysql_query($query);

if(($result)>0){
while($line=mysql_fetch_array($result))

print( "تصویر کالا : $line[image]");
print( "نام کالا : $line[title]");

}
else {
print( "موردی یافت نشد");

$result->free();

} }
?>
</div>
<p align="center">

</div>
</div>

</div>

به همین جهت هم در بالا اکشن فرم رو action="index.php?pagesid=<?php echo $row["id"]; ?>" قرار دادم تا البته منوهای اصلی سایتم هم تو این صفحه ی جدید همرا ه باشه.


صفحه ی search-page رو هم به این صورت نوشتم تا با گرفتن آیدی از فرم قبل بتونه این اطلاعات محصول رو نمایش بده:




<?php
$id=$_POST["id"];

$s=$dbh->prepare("SELECT * FROM `product`
WHERE `id` ='".$id."' ");
$s->execute();
$row=$s->fetch();
?>




<div class="panel panel-default ">
<div class="panel-heading">


<div class="clearfix"></div>
</div>
<div class="panel-body">
<div class="media">
<div class="media-right">

<img src="admin-page/uploads/<?php echo $row["image"]; ?>" alt="" />


</div>
<div class="media-body">
<h4 class="media-heading"> <?php echo $row["title"]; ?></h4>
<p>
<?php echo $row["description"]; ?>

</p>
<div class="clearfix"></div>
<div class="btn-group" role="group" id="BegeniButonlari">
<button type="button" class="btn btn-default"><span class="glyphicon glyphicon-thumbs-up"></span></button>
<button type="button" class="btn btn-default"><span class="glyphicon glyphicon-thumbs-down"></span></button>
</div>
</div>
</div>
</div>
</div>

نمیدونم آیا روند کارم صحیح هست یا نه، گرجه به صفحه ای هدایت نمیشه و فقط مثلا نام محصول رو زیر تکس باکس همون صفحه ی اول پرینت میکنه.

لطفا راهنمایی بفرمایید.

ممنون.

lord_viper
دوشنبه 24 خرداد 1395, 17:57 عصر
دقیقا مشخص نیست شما چه کاری میخواهید انجام بدید

شما اکشن فورم action="index.php?pagesid=<?php echo $row["id"]; داری اطلاعات رو به صورت get پاس میدی ولی در صفحه مقصد میخواهی به صورت $id=$_POST["id"]; متد پست بگیری
و اینکه برای رفتن به صفحه جدید باید از تابع header و location استفاده کنید


header("location: index.php?page_id='{$row["id"]}'");

hhamidy
چهارشنبه 26 خرداد 1395, 13:50 عصر
دقیقا مشخص نیست شما چه کاری میخواهید انجام بدید

شما اکشن فورم action="index.php?pagesid=<?php echo $row["id"]; داری اطلاعات رو به صورت get پاس میدی ولی در صفحه مقصد میخواهی به صورت $id=$_POST["id"]; متد پست بگیری
و اینکه برای رفتن به صفحه جدید باید از تابع header و location استفاده کنید


header("location: index.php?page_id='{$row["id"]}'");

سلام.

ممنون.

ببینید من خودم دارم php رو یاد می گیرم.
یک فیلم آموزشی دیدم که داخلش گفته بود هر جا که با href پاس دادید در صفحه ای ، باید اون سمت با GET تحویل بگیرید وگرنه با POST. نمیدونم شاید من اشتباه برداشت کردم.
امکانش هست شما تفاوتش رو خیلی کوتاه توضیح بفرمایید؟ اینکه در چه مواردی از GET و در چه مواردی از POST استفاده می کنیم.

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


<div class="row">
<div class="col-md-12 menu-up">

<div class="col-md-4">

<div align="center">


<form class="navbar-form navbar-left" role="search" method="POST" action="index.php?page=product_details&id=<?php echo $row["id"]; ?>" target="_parent">

<div class="form-group">
<input type="text" class="form-control" placeholder="جستجو در سایت myideal ..."; style="direction:rtl;" name="STextB">
</div>
<button typr="submit" class="btn btn-warning btn-search" name="SB" value="جستجو " >search</button>

</form>


<?php

if(isset($_POST['SB'])){
$SP = $_POST["STextB"];
$query = " select * from product where title like '%".$SP."%'";
$result = mysql_query($query);

}
?>
</div>
<p align="center">

</div>
</div>
</div>

و صفحه ی product_details:




: <?php $id=$_GET["id"];

$s=$dbh->prepare("SELECT * FROM `product`
WHERE `id` ='".$id."' ");
$s->execute();
$row=$s->fetch();
?>



<div class="panel panel-default ">
<div class="panel-heading">


<div class="clearfix"></div>
</div>
<div class="panel-body">
<div class="media">
<div class="media-right">

<img src="admin-page/uploads/<?php echo $row["image"]; ?>" alt="" />


</div>
<div class="media-body">
<h4 class="media-heading">

<?php echo $row["title"]; ?></h4>
<p>
<?php echo $row["description"]; ?>

</p>
<div class="clearfix"></div>
<div class="btn-group" role="group" id="BegeniButonlari">
<button type="button" class="btn btn-default"><span class="glyphicon glyphicon-thumbs-up"></span></button>
<button type="button" class="btn btn-default"><span class="glyphicon glyphicon-thumbs-down"></span></button>
</div>
</div>
</div>
</div>

hhamidy
چهارشنبه 26 خرداد 1395, 13:58 عصر
دقیقا مشخص نیست شما چه کاری میخواهید انجام بدید

شما اکشن فورم action="index.php?pagesid=<?php echo $row["id"]; داری اطلاعات رو به صورت get پاس میدی ولی در صفحه مقصد میخواهی به صورت $id=$_POST["id"]; متد پست بگیری
و اینکه برای رفتن به صفحه جدید باید از تابع header و location استفاده کنید


header("location: index.php?page_id='{$row["id"]}'");



هدر و لوکیشن رو هم قرار دادم تو صفحه ی اصلی از پوشه ی page میره میخونه:index.php?page=product_details
قبلا اشتباه تایپ کرده بودم البته:
سهوی بود:
ndex.php?pagesid