PDA

View Full Version : مشکل با متغیر محتوای اون که دیر آپدیت میشه



milad_d993
پنج شنبه 04 تیر 1394, 17:40 عصر
سلام دوستان
مشکل اینجاست که سرعت به روز شدن محتوای متغیر خیلی کمتر از سرعت اجرا خط به خط کد هاست و اگه توی خط 43 دستور alert رو بردارم حتی اگه error مخالف صفر باشه صفحه submit میشه :(
چیکار کنم؟؟؟


<html>
<head>
<script src="jquery-1.11.3.min.js" type="text/javascript"></script>
<script type="text/javascript">
var error;
var not_null = 0;
var url;
var temp;
var result;
var i;
function sendform(){
var x = document.getElementsByName("bookCode[]");
url = "borrowOp.php?";
error= 0;
for (i = 0; i < x.length; i++) {
if (x.item(i).value != "") {
not_null = 1;
error++;
if(url == "borrowOp.php?")
url = url + "bookCode[]=" + x.item(i).value + "*id:" + x.item(i).id ;
else
url = url + "&bookCode[]=" + x.item(i).value + "*id:" + x.item(i).id ;
}
}
if(not_null == 1){

for (i = 0; i < x.length; i++){

if(x.item(i).value == ""){
document.getElementById(x.item(i).id+'_msg').inner HTML = "";
document.getElementById(x.item(i).id+'_f').setAttr ibute('style','color: black;');
document.getElementById(x.item(i).id+'_msg').setAt tribute('style','color: black;');
}
}

url = url + "&error=" + error;
$(document).ready(function(e) {
var op = "check";
$.get(url,{op:op},function(data){
result = data.split("&");
});
})
alert("اگه این رو نذارم صفحه submit میشه، حتی اگه error > 0 باشه");
temp = result[result.length-2].split("=");
error = temp[1];

temp = result[result.length-1].split("=");
n = temp[1];

var bookCode;
var msg;
for(i = 0; i < n; i++){

temp = result[i].split(",");
bookCode = temp[0].split("=");
msg = temp[1];

if(bookCode[1] == "موجود"){
document.getElementById(bookCode[0]+'_msg').innerHTML = msg;
document.getElementById(bookCode[0]+'_f').setAttribute('style','color: black;');
document.getElementById(bookCode[0]+'_msg').setAttribute('style','color: black;');
}else{
if(bookCode[1] == "خطا" ){
document.getElementById(bookCode[0] + '_msg').innerHTML = bookCode[1];
}else{
document.getElementById(bookCode[0] + '_msg').innerHTML = msg + ": " + bookCode[1];
}
document.getElementById(bookCode[0] + '_f').setAttribute('style','color: red;');
document.getElementById(bookCode[0] + '_msg').setAttribute('style','color: red;');
}

}
}
if(not_null == 0){
document.getElementById("bookCode1_f").setAttribute('style','color: red;');
return false;
}else{
if(document.getElementById("bookCode1_f").value == "")
document.getElementById("bookCode1_f").setAttribute('style','color: black;');

if(error > 0)
return false;
}
}
</script>
</head>
<body>
<form action="borrowOp.php" method="post" onsubmit="return sendform()">
<table border="1" class="borrowBook1" align="center">
<?php
for($i = 0; $i < $borrowBookCount; $i++){
$title = ($i == 0)?"*":"";
$title .= "کد کتاب:";
echo '
<tr>
<td><label id="bookCode'.($i+1).'_f">'.$title.'</label></td>
<td><input type="number" name = "bookCode[]" id = "bookCode'.($i+1).'" /> </td>
<td><label id="bookCode'.($i+1).'_msg"></label></td>
</tr>';
}
?>
<tr>
<td align="center" colspan="3">
<input type="submit" name="borrowAdd" value="درج امانت" class="gBtn" />
<input type="button" value="انصراف" onclick="location.href='borrowList.php'" class="rBtn" />
</td>
</tr>
</table>
</form>
</body>
</html>


اینم کد صفحه borrowOp.php


<?php
session_start();
if(!isset($_SESSION['admin_username']))
header("location:../login.php");

elseif(!isset($_POST["borrowAdd"]) && !isset($_GET["borrowList"]) &&
!isset($_GET["op"]) && !isset($_POST["memberView"])){

if(!isset($_POST["memberView"]))
header("location:memberView.php");
else
header("location:borrowList.php");
}

require_once("../../DBconfig.php");

if(isset($_GET["op"]) && $_GET["op"] == "check"){

$error = $_GET["error"];
$n = $error;
$bookCode = $_GET["bookCode"];
foreach($bookCode as $temp){
list($code, $id) = explode('*', $temp);
$data = mysql_query("select name,author,translator,state from book where code = $code",$con);
if(mysql_num_rows($data) == 1){

$row = mysql_fetch_array($data);

$name = $row["name"];
$author = ($row["translator"] == "")?$row["author"]:$row["translator"];
$state = $row["state"];

if($state == 1) $error--;

}else{

$name = "?";
$author = "?";
$state = -1;
}

$bookstateData = mysql_query("select title from bookState where id =".$state,$con);
$bookStateRow = mysql_fetch_array($bookstateData);

$bookId = array();
$bookId = explode(':',$id);

echo $bookId[1].'='.$bookStateRow["title"].','.$name.' ('.$author.')'.'&';

}
echo "error=".$error."&n=".$n;
}
?>

H:Shojaei
جمعه 05 تیر 1394, 02:51 صبح
به این صورت عمل کنید:



<html>
<head>
<script src="js/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
var error=1;
function sendform(){
alert(error);
if(error==1)
{ error=0;
return false;
} else
$('form').submit();
} </script>
</head>
<body>
<form action="borrowOp.php" method="post" onsubmit="">
<input type="button" name="borrowAdd" value="darj" onclick="sendform();" class="gBtn" />
</form> </body></html>
بار اول که error 0 هست ارسال نمیشه فرم و مقدارش رو همونجا 1 میکنم بار دوم که کلیک بشه فرم ارسال میشه...

milad_d993
جمعه 05 تیر 1394, 11:38 صبح
به این صورت عمل کنید:



<html>
<head>
<script src="js/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
var error=1;
function sendform(){
alert(error);
if(error==1)
{ error=0;
return false;
} else
$('form').submit();
} </script>
</head>
<body>
<form action="borrowOp.php" method="post" onsubmit="">
<input type="button" name="borrowAdd" value="darj" onclick="sendform();" class="gBtn" />
</form> </body></html>
بار اول که error 0 هست ارسال نمیشه فرم و مقدارش رو همونجا 1 میکنم بار دوم که کلیک بشه فرم ارسال میشه...

این کار راه اندازه ولی فکر نکنم اصولی باشه ...

H:Shojaei
جمعه 05 تیر 1394, 22:38 عصر
چرا اصولی نیست اونوقت؟