سؤال

لقد حصلت على هذه المصفوفة 2 في نموذج ليتم معالجتها.ومع ذلك، تمكنت فقط من الحصول على الإخراج من مجموعة واحدة فقط.عينة على النحو التالي:

<inputs id="location" type="text" name="data[]" value=""/>
<input id="shipval" type="text" name="data[][id]" value=""/>

وفي الجزء PHP أدناه:

foreach ($_POST ["data"] as $id => $subs) {       

            foreach ($subs as $key=>$sub) {

                $subcategory = $sub;

                if($subs['id']=="$subcategory"){
                    echo $sql = " insert into x(kodLebuhraya,kodSeksyen) values ('".$subs['id']."','".$sub."')";echo "<br>";    
                }else{
                    //echo "hi2";
                    echo $sql = " insert into x(kodLebuhraya,kodSeksyen) values ('".$subs['id']."','".$sub."')";echo "<br>";
                }

            }   

        }

يعني موقع واحد لسفينة واحدة.لدي حقل إدخال متعدد للموقع وShipval.هل يمكن يا رفاق أن تنوروني أي واحد هو الخطأ.شكرا مقدما.

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

المحلول

لذلك تحتاج في الأساس إلى تمرير الموقع والشحن في أزواج.

جرب هذه البنية في HTML:

<label>Set One</label>
<input class="location" type="text" name="data[location][]" value=""/>
<input class="shipval" type="text" name="data[shipval][]" value=""/>
<label>Set Two</label>
<input class="location" type="text" name="data[location][]" value=""/>
<input class="shipval" type="text" name="data[shipval][]" value=""/>
<label>Set Three</label>
<input class="location" type="text" name="data[location][]" value=""/>
<input class="shipval" type="text" name="data[shipval][]" value=""/>

وهذا الكود ل PHP:

  foreach ($_POST['data']['location'] as $key => $location) {       
        $shipVal = $_POST['data']['shipval'][$key];

        //now you have a pair of $location and $shipVal
        echo $location.' : '.$shipVal.'<hr>';

    }

تجنب استخدام الفهارس المسماة بعد الفهارس غير المسماة على سبيل المثال. <input name="array[][named]" /> يمكنك أن تفقد ترتيب الحقول إذا كان أحد الحقول الزوجية فارغًا.

نصائح أخرى

لديك <inputs id="location" بدلاً من <input id="location"

أيضًا... foreach ($subs as $key => $sub) { سوف يلقي خطأ ل <inputs id="location" type="text" name="data[]" value=""/> لأنها ليست متعددة الأبعاد.لذا حاول تغيير ذلك إلى <inputs id="location" type="text" name="data[][]" value=""/>

بالنسبة للتحديد المتعدد، يجب أن ينتهي الاسم بين قوسين مربعين، لذا ستحتاج إلى تغيير اسمك shipval المدخلات

أولا لقد كتبت inputs بدلاً من input.

ثانيا هذا السطر :

foreach ($subs as $key=>$sub) {

سوف يتعامل مع كل متغير كمصفوفة، ولكن الموقع ليس مصفوفة.

لم أر الحاجة إلى حلقة لأنك تريد الوصول إليها فقط $_POST['data'][0] و $_POST['data'][1]['id']

لقد لاحظت أيضًا أن SQL الخاص بك مكرر لذا يمكنك المحاولة

$sql = "INSERT INTO  x(`kodLebuhraya`,`kodSeksyen`) VALUES ('%s','%s')" ;
printf($sql,mysqli_real_escape_string($_POST['data'][0]),mysqli_real_escape_string($_POST['data'][1]['id']));

انتاج |

INSERT INTO x(`kodLebuhraya`,`kodSeksyen`) VALUES ('A','B')

النموذج المستخدم

<form method="POST">
    A : <input id="location" type="text" name="data[]" value="" /> 
    B : <input id="shipval" type="text" name="data[][id]" value="" /> 
    <input  id="shipval" type="submit" name="submit" value="Submit" />
</form>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top