PDA

View Full Version : سوال: استفاده از json



baran.f.a
پنج شنبه 09 مهر 1394, 11:51 صبح
سلام
سوالی داشتم . من فرمی دارم تحت عنوان بارنامه در این فرم قراره یک سری دستگاه ها با شماره سریالی خاص برای افراد مختلف ارسال بشه در این فرم می خوام با هر بار ئارد کردن شماره سریال دوکار رو انجام بده 1: یک insert و 2: یک select بعد از انجام این دوکار اطلاعات رو در یک جدول برای من نمایش بده تا بعد قابلیت چاپ رو داشته باشم .من با استفاده از jquery و json خواستم این کارو انجام بدم تو صفحه ی فرمم شماره سریالو با jquery به یک صفحه ی دیگه فرستادم تا اونجا کار insert در دیتابیس رو انجام بده بعد از اون در همون صفحه یک select انجام می ده و اطلاعاتو با json به صفحهی اول می بره و در یک جدول نمایش می ده .
من کار insert رو به خوبی نتیجه گرفتم ولی نمی تونم اطلاعات رو با select و json نمایش بدم حتی وقتی دستور select رو در اون صفحه می زارم کار insert هم انجام نمی شه . لطفا راهنماییم کنید . چند روزی هست که درگیرشم و متوجه نمی شم کجای کارم اشتباهه .
صفحه ی waybill.php


<form action="waybill_second.php" dir="rtl" style="margin-right:200px;" id="myform" method="get">

<p style="font-size:30px; font:Tahoma;">بارنامه شماره : <?php echo $waybill_id;?></p>



<label> نام تکنسین :</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<select name="technician" style="width:130px;" id="technician" checked="checked">
<option></option>
<?php

$sql = "SELECT * FROM user where permission='0'";
$rs = mysql_query($sql) or die(mysql_error());

while($row = mysql_fetch_array($rs)){
echo "<option value='".$row["u_id"]."'>".$row["user_name"]."&nbsp;".$row["user_family"]."</option>";

}
echo "</select>";
?>
</br></br>
<label>شماره سریال :</label>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="text" name="name" id="name" style="width:130px;"/>
</br></br>

<span style="color:#006633"></span>
<table id="r" cellpadding="0" cellspacing="0" width="84%" >
<thead>
<tr>
<th>شماره سریال</th>
<th>کد پذیرنده</th>
<th>نام فروشگاه</th>
<th>شهر</th>
<th>آدرس</th>
<th>تلفن تماس</th>
<th>نام تکنسین</th>
<th>تاریخ خروج </th>
</tr>
</thead>
<tbody>
</tbody>
</table>

<script type="text/javascript">

var giCount = 1;
var date="<?php echo $out; ?>";
var waybill_id = "<?php echo $num; ?>";
$('#r').dataTable();
$(document).ready(function(){
$('#name').change(function(){
$.ajax({
type: 'POST',
url: 'waybill_js.php',

data: {

serial_code : $('#name').val(),
technician : $('#technician').val(),
waybill : waybill_id

},
dataType: "json",
success: function fnClickAddRow(JSONObject) {
for (var key in JSONObject) {
if (JSONObject.hasOwnProperty(key)) {
$('#r').dataTable().fnAddData( [
JSONObject[key]["serial"],
JSONObject[key]["merchant"],
JSONObject[key]["business_name"],
JSONObject[key]["city"],
JSONObject[key]["address"],
JSONObject[key]["mobile_number"],
JSONObject[key]["user_family"],
JSONObject[key]["departures"] ] );
$("#name").val('').focus();
giCount++;
}
}
},
error: function(){
alert('error');
}
});
});
});



$('#name').on('keyup', function(e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13) {
fnClickAddRow();
}
});

</script>
</br></br>

</form>


و صفحه ی waybill_js.php:



<?php
session_start();
require_once 'connect.php';
include_once('jdf.php');
connecttodb();
mysql_query('SET NAMES utf8');
$time=date('Y/m/d H:i:s');
$out=jdate('Ymd','','','','en');
$month=jdate('Ym','','','','en');

if(!empty($_POST['technician']) && !empty($_POST['serial_code']) && !empty($_POST['waybill'])){

$waybill=mysql_real_escape_string($_POST['waybill']);
$technican=mysql_real_escape_string($_POST['technician']);
$user_id=mysql_real_escape_string($_SESSION['user_id']);
$serial_code=mysql_real_escape_string($_POST['serial_code']);

$ins=mysql_query("insert into change_location (serial_code,terminal_code,merchant_id,psp_id,
departures_date,attribution_date,status,location,u ser_id,technician_id,month,waybill_id,update_date)

select pos.serial_code,pos.terminal_code,pos.merchant_id, pos.psp_id,'$out',pos. depatures_date,pos.status,'D','$user_id','$technic an','$month','$waybill','$time'
from pos
where pos.serial_code='$_POST[serial_code]'
and pos.status='3'")or die(mysql_error());

if($ins){
$select=mysql_query("select change_location.serial_code,change_location.mercha nt_id ,merchant.business_name,merchant.city,merchant.add ress,merchant.mobile_number,change_location.techni cian_id,
user.user_family,change_location.departures_date
from change_location
LEFT JOIN merchant
on merchant.m_id=change_location.merchant_id
LEFT JOIN psp
on psp.id=change_location.psp_id
LEFT JOIN user
on user.u_id=change_location.technician_id
where waybill_id='$waybill'
and serial_code='$_POST[serial_code]'") or die(mysql_error());

$someArray = [];

// Loop through query and push results into $someArray;
while ($row = mysql_fetch_assoc($select)) {
array_push($someArray, [
'serial' => $row['serial_code'],
'merchant' => $row['merchant_id'],
'business_name' => $row['business_name'],
'city' => $row['city'],
'address' => $row['address'],
'mobile_number' => $row['mobile_number'],
'user_family' => $row['user_family'],
'departures' => $row['departures_date'],
]);
}

// Convert the Array to a JSON String and echo it
$someJSON = json_encode($someArray);
echo $someJSON;

}


}
else {
echo "<script type=\"text/javascript\">
alert(\"لطفا تکنسین مورد نظر را انتخاب کنید ..\");
window.location = \"waybill.php\"
</script>";
}


?>

pejman_view
پنج شنبه 09 مهر 1394, 16:56 عصر
سلام

خیلی کد نا امنی دارید می نویسید حالا من به این کاری ندارم می ریم سر جواب سوالتان
لزوماْ نبایستی مشکل داشته باشه اما باید خروجی خود را مرتب کنید یه جا در صورت موفقیت اطلاعات را بصورت json می فرستید و در صورت عدم اجرای شرط بصورت کد جاوا اسکریپت بهتر است هر دو Json باشه اما مشکل از کجاست دقیقاْ نمی توانم راهنمایی کنم firebug نصب کنید روی موزیلا در هنگام ارسال پاسخ ajax در firebug چک کنید سرور چی باز می گرداند تا عیب خود را پیدا کنید.

baran.f.a
جمعه 10 مهر 1394, 19:15 عصر
سلام راهنماییتون خیلی کمکم کرد در مورد امنیت حرفتون درست اما فعلا می خوام این مشکلو حل کنم بعد از اجرا داده ها برمی گردن به صفحه اول اما این خطارو دارم که هر چی تو نت می گردم نمی دونم باید چیکار کنم :
این خطارو دارم :


DataTables warning: table id=r - Requested unknown parameter '0' for row 0. For more information about this error, please see http://datatables.net/tn/4

اینم صفحه اولم لطفا راهنماییک کنید :


<script type="text/javascript" src="ddmenu/jquery.min.js"></script>
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript" language="javascript" src="js/jquery.dataTables.min.js"></script>
<div id="site_content">


<form action="waybill_second.php" dir="rtl" style="margin-right:200px;" id="myform" method="get">


<p style="font-size:30px; font:Tahoma;">بارنامه شماره : <?php echo $waybill_id;?></p>




<label> نام تکنسین :</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;


<select name="technician" style="width:130px;" id="technician" checked="checked">
<option></option>
<?php

$sql = "SELECT * FROM user where permission='0'";
$rs = mysql_query($sql) or die(mysql_error());

while($row = mysql_fetch_array($rs)){
echo "<option value='".$row["u_id"]."'>".$row["user_name"]."&nbsp;".$row["user_family"]."</option>";

}
echo "</select>";
?>
</br></br>
<label>شماره سریال :</label>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="text" name="name" id="name" style="width:130px;"/>
</br></br>


<span style="color:#006633"></span>
<table id="r" cellpadding="0" cellspacing="0" width="84%" >
<thead>
<tr>
<th>شماره سریال</th>
<th>کد پذیرنده</th>
<th>نام فروشگاه</th>
<th>شهر</th>
<th>آدرس</th>
<th>تلفن تماس</th>
<th>نام تکنسین</th>
<th>تاریخ خروج </th>
</tr>
</thead>
<tbody>
</tbody>
</table>

<script type="text/javascript">

var giCount = 1;
var date="<?php echo $out; ?>";
var waybill_id = "<?php echo $num; ?>";
$('#r').dataTable();
$(document).ready(function(){
$('#name').change(function(){
$.ajax({
type: 'POST',
url: 'waybill_js.php',

data: {

serial_code : $('#name').val(),
technician : $('#technician').val(),
waybill : waybill_id

},
dataType: "json",
success: function fnClickAddRow(JSONObject) {
for (var key in JSONObject) {
if (JSONObject.hasOwnProperty(key)) {
$('#r').dataTable().fnAddData( [
JSONObject[key]["serial"],
JSONObject[key]["merchant"],
JSONObject[key]["business_name"],
JSONObject[key]["city"],
JSONObject[key]["address"],
JSONObject[key]["mobile_number"],
JSONObject[key]["user_family"],
JSONObject[key]["departures"] ] );
$("#name").val('').focus();
giCount++;
},
column:{




}
}
},
error: function(){
alert('error');
}


});
$('#name').on('keyup', function(e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13) {
fnClickAddRow();
}
});
});




});






</script>
</br></br>

</form>

baran.f.a
شنبه 11 مهر 1394, 06:28 صبح
کسی نیست راهنمایی کنه ؟؟

baran.f.a
شنبه 11 مهر 1394, 10:51 صبح
ایده ای ، نظری ندارید ؟ کسی تا حالا کار نکرده ؟؟