Мой php файл не получает результаты должным образом - PullRequest
0 голосов
/ 09 мая 2011

У меня проблемы.

Я пишу HTML и jQuery и задаю одинаковые атрибуты name в тегах <select> и тегах <input>.

<select name="questionBoxOne" id="questionBoxOne">
  <option selected="selected" value="">Choose a question</option>
  <option value="">---------------</option>
  <option value="custom">Create your own question</option>
  <option value="">---------------</option>
  <option value="My mother's maiden name?">My mother's maiden name?</option>
  <option value="The name of my first pet?">The name of my first pet?</option>
  <option value="My father's middle name?">My father's middle name?</option>
</select>

Я использую эту область для отображения поля ввода, если пользователь выбирает опцию Пользовательский вопрос.

<div id="newQuestion">
  <input type="text" value="" id="questionBoxOne" name="questionBoxOne" />
  <a id="cancel">select question</a>
</div>

И я использую коды jQuery.

 <script language="javascript">
        $(function() {
            $('#newQuestion').hide();

            $('#questionBoxOne').change(function() {
                if ($(this).val() === 'custom') {
                    $('#newQuestion').show();
                    $('#questionBoxOne').hide();
                }
            });

            $('#cancel').click(function () {
                $('#questionBoxOne').show();
                $('#newQuestion').hide();
            });
 </script>

, как вы можете видеть в моих предыдущих кодах, яотправляю то же имя в мой следующий finish.php файл, но когда я пытаюсь это сделать, он не показывает <select> дополнительный вопрос, но этот код показывает вопрос об исправлении.

помогите пожалуйста решить эту проблему.

1 Ответ

1 голос
/ 09 мая 2011

Хорошо, так что я думаю, что понимаю.Вы хотите отключить имя, которое вы не используете в то время, так что вот код

 <script language="javascript">
    $(function() {
        $('#newQuestion').hide();
        $('#newQuestion input').removeAttr('name');
        $('#questionBoxOne').change(function() {
            if ($(this).val() === 'custom') {
                $('#newQuestion').show();
                $('#newQuestion input').attr('name','questionBoxOne');
                $('#questionBoxOne').hide();
                $('#questionBoxOne').removeAttr('name');
            }
        });

        $('#cancel').click(function () {
            $('#questionBoxOne').show();
            $('#questionBoxOne').attr('name','questionBoxOne');
            $('#newQuestion input').removeAttr('name');
            $('#newQuestion').hide();
        });
 </script>

, который должен работать

, но вместо первого removeattr из #newQuestion вы должны удалить имяАтрибут в html Да и ТАКЖЕ ОЧЕНЬ ВАЖНО ПОЛУЧИТЬ ID для ВВОДА NEWQUESTION !!!

Однако способ, которым вы должны это обработать, -

<form id="submit" action="finish.php" method="post">
   <select id="questionSelect" name="questionSelect">
         <option selected="selected" value="">Choose a question</option>
         <option value="">---------------</option>
         <option value="custom">Create your own question</option>
         <option value="">---------------</option>
         <option value="My mother's maiden name?">My mother's maiden name?</option>
         <option value="The name of my first pet?">The name of my first pet?</option>
         <option value="My father's middle name?">My father's middle name?</option>
   </select>
  <input type="text" value="" id="custQuestion" name="custQuestion" />
  <a id="cancel">select question</a>

, тогда сохраните вашоригинальные функции jquery с идентификаторами, измененными на соответствующие, например, так:

 <script language="javascript">
        $(function() {
            $('#custQuestion').hide();

            $('#questionSelect').change(function() {
                if ($(this).val() === 'custom') {
                    $('#custQuestion').show();
                    $('#questionSelect').hide();
                }
            });

            $('#cancel').click(function () {
                $('#questionSelect').show();
                $('#custQuestion').attr('value','').hide();
            });
 </script>

теперь в файле finish.php вы можете искать оба возвращаемых имени и использовать их в зависимости от того, является ли пользовательский вопрос пустым или нет.

вот так

if(!empty($_POST['custQuestion'))
  $question = $_POST['custQuestion'];
else
  $question = $_POST['questionSelect'];

теперь, если это не поможет, вам нужно больше исследований

...