هل ترتيب المدخلات في منشور مضمون لمدخلات الصفيف في PHP؟

StackOverflow https://stackoverflow.com/questions/4400698

  •  25-09-2019
  •  | 
  •  

سؤال

لدي نموذج حيث يدخل المستخدمون عددًا غير محدود من صفوف البيانات. يصلون إلى النموذج من خلال إدخال أي عدد من الصفوف على الشاشة التي يرغبون فيها.

<?php
$numRows = $_GET['NUM_ROWS_REQUESTED'];

?>
<form method="post">
<?php
for($i = 0; $i < $numRows ;$i++) {
  $uuid = uniqid();
?>

  <input type="text" name="MYDATA[<?php print $uuid; ?>][FIRST_NAME]" />
  <input type="text" name="MYDATA[<?php print $uuid; ?>][LAST_NAME]" />
<?php
}
?>
</form>

أتساءل عما إذا ، عند نشر النموذج وأتلقى هذه السجلات في $_POST['MYDATA'] صفيف إذا كان من الممكن ضمان طلبها بنفس التسلسل الذي تم نشره على الشاشة. أم أنها سوف تطلبها uniqid() هذا تم إنشاؤه عشوائيا؟

السبب في أنني أستخدم معرفًا فريدًا بدلاً من عدد الأعداد الصحيحة التي ستكون أسهل في التسلسل ، هو أنه يمكن للمستخدمين إزالة الصفوف وإضافة صفوف إضافية باستخدام JavaScript في تلك الصفحة. سيكون من الصعب للغاية التحقق من التصادم.

هل كانت مفيدة؟

المحلول

ال W3 المواصفات لا تتضمن قواعد بشأن الترتيب الذي يجب تجميع قيم النموذج في مجموعة بيانات ، لذلك من الناحية الفنية لا يمكنك التأكد من ذلك. من ناحية أخرى ، لم أر حالة (من العديد من المتصفحات على العديد من أنظمة الرصاص على مر السنين) حيث لم يتم توفير البيانات في ترتيب المدرج. لم أختبر حقًا الحالات عند تغيير قيم TabIndex الافتراضية (التي تم إنشاؤها).

يمكنك دائمًا فرز الصفيف (آسورت) بعد استلامها للتأكد من الترتيب الذي تقرأه.

نصائح أخرى

إنه مضمون من قبل HTML4.01 (من أجل -urlencoded ، ولكن من المفترض أن تكون متطابقة مع /data form) ، وجميع المتصفحات الحالية تقدم حقول النموذج بالترتيب الذي يتم إدراجه في المستند.

لذا نعم ، يتم طلبهم من خلال مظهرهم ، وليس من قبل Uuid العشوائي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top