مشکل ارسال float به جای string با ajax

پرسیده شده
فعالیت 1144 روز پیش
دیده شده 476 بار
0

با عرض سلام و خسته نباشید

وقتی از طریق فرم داده ها رو ارسال میکنیم مختصات را به شکل string ارسال میکند و برای validation در سمت سرور مشکل ساز میشود.

array(4) { 
["lat"]=> string(17) "35.69968630125204" 
["lng"]=> string(17) "51.338016986846924" 
["title"]=> string(5) "place" 
["type"]=> string(1) "0" 
}

در سمت سرور مختصات را تبدیل به float کردم اما مشکل اینجاست که اگر فرم دستکاری شده باشد و به جای عدد مثلا متن گذاشته شده باشد اون هم تبدیل به float(۰) میشود و نمیتوان از تابع is_float استفاده کرد.(میشود برای این مشکل تنظیم کرد که اگر data == ۰ بود اخطار بده اما من دنبال راه اصولی هستم )

۱. چطوری میشود تنظیم کرد که مختصات را به شکل عددی ارسال کند.(دادن type="number" به input مشکل را حل نکرد!)

۲. چطوری در PHP میتوان تعداد ارقام اعشار را محاسبه کرد برای validation اطلاعات ارسالی از فرم لازمش دارم.

فایل پیوست

محمد گازری
محمد گازری

8 اسفند 99

0
حذف شده

سلام و احترام 

برای اینکه بتونید با فرم عدد اعشاری ارسال کنید به سمت سرور میتونید از input زیر برای html خودتون استفاده کنید

 <input type=number step=0000.00001 />

 

برای محاسبه تعداد ارقام اعشار بعد از دات:

$float_number = 1.9020441;
$exploded_float = explode(".", $float_number);
echo strlen($exploded_float[1]);

 

 

فایل پیوست

امیر صالحی

توسط

امیر صالحی

10 اسفند 99

0
حذف شده

ممنون بابت پیگیریتون

همونطور که گفته بودم بعد از دادن type="number" همچنان نتیجه به صورت زیر است:

array(4) { 
["lat"]=> string(18) "35.699733676790544" 
["lng"]=> string(17) "51.33805990219117" 
["title"]=> string(5) "place" 
["type"]=> string(1) "0" 
}
فایل پیوست

محمد گازری

توسط

محمد گازری

11 اسفند 99

حذف شده
step هاشو هم set کردید؟
امیر صالحی

12 اسفند 99

حذف شده
اگه رشته برمیگرده و مشکل هم همینه میتونید تبدیلش کنید به float
امیر صالحی

12 اسفند 99

حذف شده
بله
محمد گازری

12 اسفند 99

0
حذف شده

اگر سمت php برگردونم به float مشکلی که ایجاد میشه اینه که اگر فرم دستکاری شده باشه و متن به جای عدد برگردونه در اون زمان نیز متن ماهیت float با محتوای 0 به خود میگیره و اینطوری فرآیند validation به درستی نوشته نمیشه.

دنبال بهترین راه برای validation اطلاعات فرم هستم.

فایل پیوست

محمد گازری

توسط

محمد گازری

12 اسفند 99

0
حذف شده

شما میتونید با رشته ارسال کنید float رو و با regex اون رو validate کنید

 

function isFloat($floatString)
{
   return (bool)preg_match('/(^\d+\.\d+$|^\d+$)/',$floatString);
}
فایل پیوست

امیر صالحی

توسط

امیر صالحی

12 اسفند 99