Как сравнить значения одного и того же элемента (текстовое поле ввода) и удалить дубликаты, если они существуют? - PullRequest
0 голосов
/ 05 февраля 2020

Я присваиваю номера различным транспортным средствам. Есть дублирование, которое я не хочу. Мне нужно, чтобы номера были уникальными для каждого автомобиля. Ниже приведен мой код для присвоения номеров автомобилям.

<?php
    global $post;
    // get order details //
    $order_id=$_GET['post'];
    $order = wc_get_order( $order_id ); 
    // Iterating through each "line" items in the order //
    $order_count=count($order->get_items());
    echo '<div class="driver_licences">';
    $count=1;
    foreach ($order->get_items() as $item_id => $item_data) {
        $item_quantity = $item_data->get_quantity();
        for($i=1; $i<=$item_quantity; $i++){
            $driver_assigned_cart = get_post_meta( $post->ID, 'driver_cart'.$count, true ) ? get_post_meta( $post->ID, 'driver_cart'.$count, true ) : '';
            // input field for assigning Cart number //
            echo '<lable>Driver '.$count.' assigned cart NO#</label>
            <input class="unique_cart_number" type="text"  name="driver_cart'.$count.'" value="'.$driver_assigned_cart.'">';
            $count++;
        }
    }
        echo "</div>";
?>

Ответы [ 2 ]

0 голосов
/ 08 февраля 2020
<script>
jQuery(document).ready(function($){
$('.unique_cart_number').on('change', function(e) {
    var stored  =   [];
    var inputs  =   $('.unique_cart_number');
        $.each(inputs,function(k,v){
            var getVal  =   $(v).val();
            if(stored.indexOf(getVal) != -1)
        alert('duplicate cart numbers exists. please remove duplication.');
            else
            stored.push($(v).val());
            });
                });
        $('.save_order').on('click', function(e) {
            var stored  =   [];
            var inputs  =   $('.unique_cart_number');
            $.each(inputs,function(k,v){
            var getVal  =   $(v).val();
            if(stored.indexOf(getVal) != -1){
            alert('duplicate cart numbers exists. please remove duplication.');
            e.preventdefault();
            }
            else
            stored.push($(v).val());
            });
            });
            });
</script>
0 голосов
/ 05 февраля 2020

Вы можете попробовать с уникальным идентификатором. Он выдаст уникальные значения только для каждого выполнения.

Вместо l oop вы можете использовать его внутри своего foreach l oop.

for ($x = 0; $x <= 10; $x++) {
  $uid = uniqid();
  echo $uid.'<br>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...