2016-08-15 2 views
1

У меня есть таблица, в которой я использую параметр выбора, и в зависимости от выбора через скрипт, который приведен ниже, значение появляется в следующей ячейке. Мой вопрос: как я могу получить новое отображаемое значение, чтобы обработать его через php? Например, я выбираю «Нет» из выделения и в следующей ячейке, появляется «H», и я хочу сохранить значение «H». Любая помощь приветствуется.Получить значение из div для PHP

Часть кода таблицы

<td> 
    <select id="ynA4" name="ynA4"> 
     <option selected disabled hidden style="display: none" value=""></option> 
     <option value="Yes">Yes</option> 
     <option value="No">No</option> 
     <option value="TBC">TBC</option> 
     <option value="N/A">N/A</option> 
    </select> 
</td> 
<td> 
    <script> 
     $('#ynA4').change(function() { 
      opt = $(this).val(); 
      if (opt == "Yes") { 
       $('#hazardA4').html(''); 
      } else if (opt == "No") { 
       $('#hazardA4').html('H'); 
      } else if (opt == "TBC") { 
       $('#hazardA4').html(''); 
      } else if (opt == "N/A") { 
       $('#hazardA4').html('N/A'); 
      } 
     }); 
    </script> 
    <div id="hazardA4"></div> 
</td> 

Решение: # 1

Например, если «Нет» выбран, и я хочу «H» должен быть сохранен, то сценарий будет как это,

} else if (opt == "No") { $('#hazardA4').html('<input type="hidden" name="hazardA4" value="H">H'); 

Решение: # 2

<script> 
    var ynA4_val; 
    $(document).ready(function(){ 
     $('#ynA4').change(function() { 
      opt = $(this).val(); 
      if (opt == "Yes") { 
       $('#hazardA4').html(''); 
       ynA4_val = ''; 
       $('form').append('<input type="hidden" value="' +ynA4_val+ '" />'); 
      } else if (opt == "No") { 
       $('#hazardA4').html('H'); 
       ynA4_val = 'H'; 
       $('form').append('<input type="hidden" value="' +ynA4_val+ '" />'); 
      } else if (opt == "TBC") { 
       $('#hazardA4').html(''); 
       ynA4_val = ''; 
       $('form').append('<input type="hidden" value="' +ynA4_val+ '" />'); 
      } else if (opt == "N/A") { 
       $('#hazardA4').html('N/A'); 
       ynA4_val = 'N/A'; 
       $('form').append('<input type="hidden" value="' +ynA4_val+ '" />'); 
      } 
     }); //END #ynA4.change 
    }); //END document.ready 
</script> 
+1

добавить скрытый элемент ввода, убедитесь, что его обернуто внутри вашей формы. – Ghost

+0

Можете ли вы немного расширить? Я играл со скрытым элементом ввода за последние пару минут, но я не могу заставить его работать – robins02

+1

просто добавьте скрытый ввод, просто измените атрибут значения внутри блока изменений вашего выбора – Ghost

ответ

1

Вы должны обернуть код <script> в готовом документе или сценарий может запустить и попытаться связать событие change с элементом, который еще не существует в DOM.

Если у вас есть только одна форма на странице, это сработает. В противном случае, замените $('form') с $('#yourFormID')

<script> 
    var ynA4_val; 
    $(document).ready(function(){ 
     $('#ynA4').change(function() { 
      opt = $(this).val(); 
      if (opt == "Yes") { 
       $('#hazardA4').html(''); 
       ynA4_val = ''; 
       $('form').append('<input type="hidden" name="ynA4" value="' +ynA4_val+ '" />'); 
      } else if (opt == "No") { 
       $('#hazardA4').html('H'); 
       ynA4_val = 'H'; 
       $('form').append('<input type="hidden" name="ynA4" value="' +ynA4_val+ '" />'); 
      } else if (opt == "TBC") { 
       $('#hazardA4').html(''); 
       ynA4_val = ''; 
       $('form').append('<input type="hidden" name="ynA4" value="' +ynA4_val+ '" />'); 
      } else if (opt == "N/A") { 
       $('#hazardA4').html('N/A'); 
       ynA4_val = 'N/A'; 
       $('form').append('<input type="hidden" name="ynA4" value="' +ynA4_val+ '" />'); 
      } 
     }); //END #ynA4.change 
    }); //END document.ready 
</script> 

Обратите внимание, что в настоящее время существует два способа получения на этой информации:

(1) С помощью скрытого элемента формы, публикуемую с формой: $sumthin = $_POST['ynA4']

(2) Через глобальную переменную ynA4_val в javascript, которую вы можете добавить к данным, отправляемым через AJAX.

(3) ОБНОВЛЕНИЕ: Обратите внимание, что я забыл поместить в исходный ответ атрибут name="varname". Исправлено/обновлено.

+0

@ robins02 Обратите внимание на обновление этого ответа – gibberish

1

Решение

С предложением @Ghost, Например, если «Нет» выбран, и я хочу «H» должен быть сохранен, сценарий не будет, как это,

} else if (opt == "No") { $('#hazardA4').html('<input type="hidden" name="hazardA4" value="H">H'); 
Смежные вопросы