2016-04-19 1 views
-4

У меня есть вход для ввода с другим вводом ввода. Я хочу сохранить выбранное значение в массиве php с каждым нажатием на ввод ввода без перезагрузки страницы. при нажатии на добавить каждый раз, когда он будет хранить значение select input в массиве php. при первом щелчке массив будет иметь только одно значение, а затем во втором щелчке на добавлении php-массива будет иметь значение 2.Javascript onclick on submit вводит входное значение в php-массиве

, так как я пробовал его с помощью ajax, но когда я щелкаю дважды, тогда сохраняется только второе значение, первое значение заменяется на 2-й. но я хочу оба значения в массиве. Вот мой код: Html:

<select id = "exam-list" name = "exam_name"> 
    <option value="1">Opt 1</option> 
    <option value="2">Opt 2</option> 
    <option value="3">Opt 3</option> 
</select> 

<input class="btn btn-primary" onclick="save_exam()" type="submit" name="submit" value="add"/> 

Js Код:

function save_exam() {var val = document.getElementById('exam-list').value;$.ajax({type: "POST",url: "store_exam.php",datatype: "json",data: 'exam_id=' + val,success: function (data) { }});} 

PHP код:

<?php $count = count($_POST['exam']);for ($i = 0; $i < $count; $i++)  {print_r($_POST['exam']);}?> 

ответ

2

Сделать массив в session значение пут после каждого клика на этом массиве. нет другого способа, я думаю, можно хранить каждое значение после события click.

<?php 
$count = count($_POST['exam']); 
for ($i = 0; $i < $count; $i++) 
    { 
$_SESSION['exam'] = $_POST['exam']; 
} 
?> 

Нечто подобное.

+1

Не могли бы вы дать какой-то код. –

+1

Проверьте код, пожалуйста. –

1

Чтобы сохранить выбранные значения без обновления страницы вы должны использовать AJAX и процесс будет примерно таким:

HTML:

<form id="form_id"> 
    <select id = "exam-list" name = "exam_name"> 
     <option value="1">Opt 1</option> 
     <option value="2">Opt 2</option> 
     <option value="3">Opt 3</option> 
    </select> 
    <input class="btn btn-primary" type="submit" name="submit" value="add"/> 
</form> 

Примечание: оберните ваш выбор в form теге

JavaScript:

<script> 
    $('.btn').on('click',function(e) { 
     e.preventDefault(); 

     var form_date=$('#form_id').serializeArray(); 

     $.ajax({ 
      url: "ajax.php", 
      method: 'GET', 
      data: form_date, 
      success: function(response) { 
       console.log(response); 
      } 
     }); 
    }); 

</script> 

На ajax.php или что вы называете это, вы получите $ _GET массив переданных данных (фактически, данные формы).

ajax.php

<?php 
$data=$_GET; 

# You will receive a array like this 
#Array(
# [exam_name] => 1 
#) 

//Do something with the data 
+0

Спасибо @Meathanjay –

+0

Если это сработает для вас, вы можете принять мой ответ. – Meathanjay

+0

будет [имя_экземпляра] содержать более одного значения. я имею в виду, будет ли он хранить новое значение с предыдущим каждый раз, когда я нажимаю на добавление? –

0

Чтобы сохранить более одного значения, вы должны сохранить значение в массиве session или cookie.

Смежные вопросы