راکت

رفرش کردن صفحه وب

10 پاسخ

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

ثبت پرسش جدید

پاسخ‌ها

10
woz
woz
@wozniak

تخصص: fan of open source world

شما قطعا صفحه ی نمایش فرم رو رفرش نکردید و آدرس دریافت اطلاعات ( آدرس نوشته شده در action فرم) رو رفرش کردید و این طبیعی هست. البته اگر از متد post استفاده کنید مرورگر به شما اخطار ارسال دوباره اطلاعت رو میده که با تایید شما دوباره ارسال میشه.
آیا درست گفتم؟

Ali dev
Ali dev
@awrr1254

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

شاید پاسخ شما همین‌جا باشد

Ali dev
Ali dev
@awrr1254

[1]: https://roocket.ir/discuss/167 برای مثال این لینکی که دادم. مشکل منم همینه وقتی صفحه رو رفرش میکنم انگار دکمه سابمیت شده و جالبه از رکورد قبلی دوتا رکورد میزنه
نمیدونم چجوری بگم😁

مهدی اردشیر
مهدی اردشیر
@mehdi0121

تخصص: یه برنامه نویس

سلام کدتون رو چک کنید
شاید توی بخشی از کدتون کدی رو به اشتباه قرارداید
از ajax استفاده میکنید ؟

Ali dev
Ali dev
@awrr1254

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

erfan
erfan
@erfan.h.010011

تخصص: gray hat

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

Ali dev
Ali dev
@awrr1254
<?php

include '../database/db.php';
if (isset($_POST['sub'])) {
    if (!empty($_POST['username']) && !empty($_POST['title']) && !empty($_POST['comment']) && !empty($_POST['sub'])) {
        $username = $_POST['username'];
        $title = $_POST['title'];
        $comment = $_POST['comment'];
        $insert = $conn->prepare("INSERT INTO ques SET username=? , title=? , comments=?");
        $insert->bindValue(1, $username);
        $insert->bindValue(2, $title);
        $insert->bindValue(3, $comment);
        $insert->execute();
    }
}

if (isset($_POST['sub'])) {
   ; header("location:qa2.php");
}

?>

<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>پرسش و پاسخ</title>
    <link rel="stylesheet" href="https://roocket.ir/qa.css">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/2.1.2/sweetalert.min.js"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    <script src="script1.js"></script>
</head>

<body>
    <br>
    <h2 id="header">
        ثبت پرسش
    </h2>
    <br>
    <p id="caption"> نام خود را وارد کنید :</p>
    <form method="post" required>
        <input class="username form-control" type="text" placeholder="نام خود را وارد کنید" name="username" required
            id="username">
        <br>
        <br>
        <p id="caption">عنوان پرسش را وارد کنید:</p>
        <input type="text" placeholder="عنوان پرسش خود را وارد کنید" name="title" class="title form-control"
            style="margin-right: 10px" required id="title">

        <textarea name="comment" class="ta" cols="70" rows="10" placeholder="پرسش خود را وارد کنید"></textarea required="required" id="text">
        <br>
        <br>
        <input type="submit" name="sub" class="btn btn-success" value="ثبت پرسش" onclick="msg();">
        <br>
        <br>
    </form>
    </div>

</body>
<style>
    .username {
        position: relative;
        right: 50px;
    }

    .title {
        position: relative;
        right: 50px;
    }

    .btn {
        width: 150px;
        margin-top: 20px;
    }

</style>

</html>

و هدرش کردم به :

<?php

include_once '../database/db.php';

$select = $conn->prepare("SELECT * FROM ques");
$select->execute();
$coments = $select->fetchAll(PDO::FETCH_ASSOC);

?>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>پرسش ها</title>

</head>
<body>
    <?php foreach($coments as $co){?>
    <div class="userqa">
        <p id="name">
            <? = $co['username'] ?>
        </p>

        <p id="msg">
            <? = $co['comments'] ?>
        </p>

        <span id="title">

        <? = $co['title'] ?>

        <span>

    </div>

    <?php }?>
</body>
<style>  
.userqa {
    border: 3px solid wheat;
    text-align: none !important;
    float: right;
    width: 500px;
    margin-top: 50px;
    font-size: larger;
    padding: 5px;
    border-bottom-right-radius: 20px;
    border-radius: 10px 0px 10px 10px;
    margin-bottom: 50px;
    animation-name: exl;
    animation-duration: 15s;
    transition: 15s;
    animation-iteration-count: infinite;
    background-color: chocolate;
    display: flex;
    flex-direction: column;
    margin: 80px;
}

@keyframes exl {
    0% {
        border-color: white;
    }

    10% {
        border-color: yellow;
    }

    20% {
        border-color: green;
    }

    30% {
        border-color: darkorange;
    }

    57% {
        border-color: red;
    }

    75% {
        border-color: blue;
    }

    100% {
        border-color: blueviolet;
    }
}

#name {
    text-align: center;
    color: wheat;
    font-weight: bold;
}

#msg {
    text-align: start;
    float: right;
    color: wheat;
}
</style>
</html>

</body></html>

Ali dev
Ali dev
@awrr1254

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

علی مهدوی
علی مهدوی
@mahdavi

تخصص: طراح و توسعه دهنده وب

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

if (isset($_POST['sub'])) {
   ; header("location:qa2.php");
}

و به جای if (isset($_POST['sub'])) از این if (! isset($_POST['sub'])) استفاده کنید ؟
چون دارید دوبار بودن POST رو چک میکنید هربارم وجودشو چک میکنید
باید اونی که ریدایرکت اتفاق میوفته رو برای وقتی به کار ببرید که POST نباشه یعنی !(NOT)

Ali dev
Ali dev
@awrr1254

سلام تست کردم ولی کلا کار نمیکنه!

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام