Переменная не может извлечь значения из параметра выбора, даже если имя указано правильно - PullRequest
0 голосов
/ 28 мая 2018

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

<select name="staff" value="staff" align="left" onchange="senddocu(this)">
    <option selected value="">Staff</option>
    <option name='chief' value='chief'>Chief User</option>
    <option name='user' value='user'>User 1</option>
</select>

Теперь у меня проблема с получением значений из другого файла в моем PHP-коде.Почему-то он не получает значения из моих опций выбора.Вот параметры для моих опций выбора.А также, мой код из ранее и этот код находится только в одном файле.

<select name="document" align="left">
<option selected disabled value="">Document Type</option>
                            <option value="A">A</option>
                            <option value="C">C</option>
                            <option value="CO">CO</option>
                            <option value="Curr">Curr</option>
                            <option value="Scholarship">Scholarship</option>
                            <option value="MIS">MIS</option>
                            <option value="Fax">Fax</option>
                            <option value="E-mail">E-mail</option></select>

<input type="text" name= "datenow" id = "copy" align="center">
<input type="text" name="application" align="center" size = "3%">

А вот код для получения значений из них.Это в другом файле.

<?php
$document_type= mysqli_real_escape_string($conn, $_POST['document']);
$application_no= mysqli_real_escape_string($conn, $_POST['application']);
$today = mysqli_real_escape_string($conn, $_POST['datenow']);

echo $document_type;
echo $application_no;
echo $today;
?>

Проблема в том, что только переменная $today извлекает свое значение.Остальное не сохраняется в переменных из другого файла. Это не имеет смысла вообще.Все имена верны, но это не подходит.У меня уже есть код ajax в моем первом файле:

function senddocu(sel)
{
 $.ajax({   
    type: "POST",
    data: {staff: $(sel).val()},
    url: "send.php",             
    dataType: "html",            
    success: function(response)
    {                    
        $("#responsecontainer").html(response); 
        console.log(response);
    }

}); 
}   

как получить значения?

1 Ответ

0 голосов
/ 28 мая 2018

Вы не используете правильный способ получения значения <select> в вашем запросе AJAX.Вам нужно указать идентификатор select или имя, на которое вы нацелены, чтобы получить правильный элемент.Затем вы запрашиваете значение выбранных опций.Чтобы получить переменные поля ввода, вы можете выбрать их по имени или по идентификатору.Я просто собираюсь сделать это по имени, так как это то, что у вас есть в вашем примере фрагмента.

Пример с использованием идентификатора:

function senddocu()
{
 $.ajax({   
    type: "POST",
    data: {
            staff: $("#sel option:selected").val(),
            datenow: $("input#datenow").val(),
            application: $("input#application").val()
          },
    url: "send.php",             
    dataType: "html",            
    success: function(response)
    {                    
        $("#responsecontainer").html(response); 
        console.log(response);
    }

  }); 
}

Этот пример принимает выбранное значение выбора, которыйимеет идентификатор sel.Для того, чтобы сделать эту работу, вы просто должны дать своему выбору правильный идентификатор.

Примерно так:

<select name="document" id="sel" align="left" onchange="senddocu();">
   <option selected disabled value="">Document Type</option>
   <option value="A">A</option>
   <option value="C">C</option>
   <option value="CO">CO</option>
   <option value="Curr">Curr</option>
   <option value="Scholarship">Scholarship</option>
   <option value="MIS">MIS</option>
   <option value="Fax">Fax</option>
   <option value="E-mail">E-mail</option>
</select>

<input type="text" name= "datenow" id = "copy" align="center">
<input type="text" name="application" align="center" size = "3%">

Пример использования имени для получения значения:

function senddocu(sel)
{
   $.ajax({   
     type: "POST",
     data: {
        staff: $("select[name=document] option:selected").val(),
        datenow: $("input[name=datenow]").val(),
        application: $("input[name=application]").val()
     },
     url: "send.php",             
     dataType: "html",            
     success: function(response)
     {                    
        $("#responsecontainer").html(response); 
        console.log(response);
     }       
  });
}

Если входные переменные находятся в совершенно другом файле, вам придется пересмотреть то, что вы пытаетесь достичь, и, возможно, переделать свою логику вокруг этого, есть ли на самом деле причина для этого.Вам также следует подумать о включении более понятного кода в свои вопросы, чтобы люди могли получить полную картину, а также протестировать код.Так намного проще.

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