PDA

View Full Version : انجام کد با رفرش صفحه



fafa_na
یک شنبه 25 تیر 1391, 08:33 صبح
سلام
من یه کدی در کلیک دکمه دارم که مقداری را در بانک ذخیره میکنه.بعد از اولین کلیک و اضافه شدن آن رکورد به بانک با هر رفرش صفحه این کد مجددا اجرا میشود
چیزی که من نمیفهمم اینکه من مقادیر را از تکست باکس ها خالی میکنم و در کد دکمه خالی بودن چک میشه و بعد از اینکه تمام فیلدها پر بودن اونموقه کد دکمه اجزا میشه
ممنون میشم راهنمای کنید

mohsen6500
یک شنبه 25 تیر 1391, 08:44 صبح
سلام
معمولا این مورد توی ارسال اطلاعات با فرم انجام میشه
برای این کار میتونی هم با استفاده از اینکه آیا مقداری درج شده یا نه
و هم میتونی برای اطمینان بیشتر مقدار جدید رو با مقادیری که توی دیتابیس ذخیره شده اند چک کنی
که اگر قبلا وارد شده باشد خطا بدهد که اطلاعات قبلا وارد شده است
یک راه دیگه اینه که اکشن فرمت رو توی یک صفحه جدید درنظر بگیری و بعد از ثبت اطلاعات یک دکمه برای بازگشت به صفحه اصلی بذاری
البته باز هم باید چک کنی که مقادیر تکراری نباشند

lady64
یک شنبه 25 تیر 1391, 10:00 صبح
پست 8 این تاپیک رو بخونید :
http://barnamenevis.org/showthread.php?266650-فرم-ورود-اطلاعات-و-رفرش-صفحه&p=1523126#post1523126

ravand
یک شنبه 25 تیر 1391, 19:09 عصر
شما باید به کدهاتون بفهمونید که حتما باید با فشار دکمه ی submit مقادیر ارسال شود.

<input type="submit" name="submitted" value="ثبت"/>
و کدهای php

if(isset($_POST['submitted'])) {
کدهای پی اچ پی شما
}
با کلیک روی دکمه ی ثبت مقدار زیر به سمت سرور ارسال میشه.

name="submitted"
و در سمت سرور بررسی میشه که آیا مقدار submitted هست . و اگه هست کدهای php رو اجرا کن.
موفق باشی.

lady64
یک شنبه 25 تیر 1391, 23:07 عصر
شما باید به کدهاتون بفهمونید که حتما باید با فشار دکمه ی submit مقادیر ارسال شود.

ولی این طور نیست آقای راوندی.حتی اگر چک کنیم که مقدار submit ست شده یا نه ، باز هم با رفرش صفحه ، کدهای اجرا میشن و اگر یک کد insert داشته باشیم ، مقادیر قبلی که با post ارسال شده بودند ، دوباره در جدول درج میشن ( با id جدید) . خب مقادیر یک بار ست شدند ،رفرش همون مقادیر ست شده رو دوباره بروزرسانی میکنه ( البته توضیحاتم علمی نیست ) .
فکر میکنم استفاده از همون تاپیکی که گفتم بهترین راه حله .

tehro0n
دوشنبه 26 تیر 1391, 01:09 صبح
ولی این طور نیست آقای راوندی.حتی اگر چک کنیم که مقدار submit ست شده یا نه ، باز هم با رفرش صفحه ، کدهای اجرا میشن و اگر یک کد insert داشته باشیم ، مقادیر قبلی که با post ارسال شده بودند ، دوباره در جدول درج میشن ( با id جدید) . خب مقادیر یک بار ست شدند ،رفرش همون مقادیر ست شده رو دوباره بروزرسانی میکنه ( البته توضیحاتم علمی نیست ) .
فکر میکنم استفاده از همون تاپیکی که گفتم بهترین راه حله .
در کل بهتر است که با ای جکس یا آژاکس انجام بدید که رفرش نشه، کلا اگه دکمه سابمیت بگذارید خاصیتش اینه که رفرش کنه مگه اینکه از iframe استفاده کنید که اصولی نیست
نمونه کد از ای جکس براتون می گذارم


<html>
<head>
<title>ToolsIR.com | AJAX Tutorial</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
function AjaxRequest() {
var xmlhttp = null;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} // else // code for IE6, IE5
return xmlhttp;
}

function ajaxAction() {
var name = document.getElementById("ajaxField").value;
var location = document.getElementById("ajaxField1").value;
var response = document.getElementById('ajaxResponse');
var xmlHttp = AjaxRequest();
xmlHttp.open("GET" , "ajaxRequest.php?name=" + name + "&location=" + location, true);
xmlHttp.onreadystatechange = function() {
if(xmlHttp.readyState == 1)
response.innerHTML = "Loading...";
if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
response.innerHTML = xmlHttp.responseText;
}
xmlHttp.send(null);
}
</script>
</head>
<body>
<form method="GET" name="form">
<table width="350" cellspacing="2" cellpadding="1" border="0" style="margin-top:10px">
<tr>
<td><font color="#FFFFFF"><span style="font-size: 11px">Name:</span></font></td>
<td><input id="ajaxField" type="text" name="name" maxlength="20" value="" class="ui-corner-all"/></td>
<label class="error" for="name" id="name_error">This field is required.</label>
</tr>
<tr>
<td><font color="#FFFFFF"><span style="font-size: 11px">Location:</span></font></td>
<td><input type="text" id="ajaxField1" name="location" maxlength="20" value="" class="ui-corner-all"/></td>
<label class="error" for="location" id="location_error">This field is required.</label>
</tr>

<td><input type="button" name="button" class="foo" id="ajaxButton" value="Send" onclick="javascript:ajaxAction();" />
<div id="ajaxResponse" style="border:1px dashed #555; margin:10px; padding:10px;"></div>

</body>
</html>

و در فايل ajaxRequest.php اين ها را ميگذاريم

<?php
$name = $_GET['name'];
$location = $_GET['location'];
echo $name;
echo $location;
?>