Как передать значение массива в функцию javascript? PHP Laravel - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть массив в javascript, названный как country_id [] и selected_country []. Когда пользователь выбирает страну в массиве страны, он будет сохраняться в массиве country_id [], а когда пользователь выбирает страну в выбранной стране, он будет сохраняться в selected_country []. Затем я хочу передать значение country_id [] и selected_country [] функции в функции скрипта. Это для перемещения данных справа налево и слева направо. Картинка прилагается здесь. enter image description here

Но это говорит о том, что ошибка ниже.

ОШИБКА:

179:575 Uncaught ReferenceError: country_id is not defined

Форма:

<form method="POST" action="{{route('admin-insurance-region-duplicateRegion')}}" onsubmit="return false;">
            @csrf
        <input name="id" value="{{$region->id}}" type="hidden" class="form-control" required>
        <div class="row">
            <div class="col-md-6">
                <div class="form-group">
                    <label>Choose Country</label>
                    <select class="form-control" name="country_id[]" multiple  size="10" style="height: 100%;">
                        @foreach ($countries as $item)
                        <option  value="{{$item->id}}" selected>{{$item->name}}</option>
                        @endforeach
                    </select>
                </div>
            </div>
            <div class="col-md-6">
                <div class="form-group">
                    <label>Selected Country</label>
                    <select class="form-control" name="selected_country[]" multiple  size="10" style="height: 100%;">
                        @foreach ($country_region as $item)
                            <option  value="{{$item->id}}" selected>{{$item->name}}</option>
                        @endforeach
                    </select>
                </div>
            </div>
            <button onclick="moveRight()">Move option to the right</button>
            <button onclick="moveLeft()">Move option to the Left</button>
        </div>

JAVASCRIPT:

<script>


        function moveRight() {

            var selItem = document.forms[0].country_id.selectedIndex;
            if (selItem == -1) {
                window.alert("You must first select an item on the left side.")
            } else {
                document.forms[0].selected_country.add(document.forms[0].country_id[selItem], null);
            }
        }

        function moveLeft() {
            var selItem = document.forms[0].selected_country.selectedIndex;
            if (selItem == -1) {
                window.alert("You must first select an item on the left side.")
            } else {
                document.forms[0].country_id.add(document.forms[0].selected_country[selItem], null);
            }
        }

</script>

1 Ответ

1 голос
/ 14 февраля 2020

Добавить атрибут Id в поле выбора «страна» и «выбранная страна».

как.

<select class="form-control" id="country_id" name="country_id[]" multiple  size="10">
  -----
</select>

<select class="form-control" id="selected_country" name="selected_country[]" multiple  size="10">
 -----                
</select>

DEMO.

<form method="POST" action="{{route('admin-insurance-region-duplicateRegion')}}" onsubmit="return false;">
	<label>Choose Country</label>
	<select class="form-control" id="country_id" name="country_id[]" multiple  size="10">
		<option  value="1" selected>1</option>
		<option  value="2" selected>2</option>
		<option  value="3" selected>3</option>
	</select>
	<label>Selected Country</label>
	<select class="form-control" id="selected_country" name="selected_country[]" multiple  size="10">
		<option  value="s1" selected>s1</option>
		<option  value="s2" selected>s2</option>
		<option  value="s3" selected>s3</option>
	</select>
	</div>
	</div>
	<button onclick="moveRight()">Move option to the right</button>
	<button onclick="moveLeft()">Move option to the Left</button>
</div>

<script>
function moveRight() {

var selItem = document.forms[0].country_id.selectedIndex;
	if (selItem == -1) {
	window.alert("You must first select an item on the left side.")
	} else {
	document.forms[0].selected_country.add(document.forms[0].country_id[selItem], null);
	}
}

function moveLeft() {
	var selItem = document.forms[0].selected_country.selectedIndex;
	if (selItem == -1) {
	window.alert("You must first select an item on the left side.")
	} else {
	document.forms[0].country_id.add(document.forms[0].selected_country[selItem], null);
	}
}

</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...