Результаты не извлекаются из $.get()

#jquery #coldfusion

#jquery #coldfusion

Вопрос:

Я использую базовый скрипт $.get () для получения информации о том, существует ли запись уже в базе данных. Вызванная страница возвращает либо да, либо нет, в зависимости от того, найдена ли запись. Прямо сейчас он возвращает пустое значение независимо.

Это фрагмент HTML с конкретными полями ввода

 <p><label for="participant_id">Please enter the Participant ID:</label>
    <cfinput type="text" name="participant_id" value="#attributes.stPages.Content.ParticipantId#" required="yes" message="Enter the Participant ID" />
    <cfif Len(trim(attributes.stPages.Content.ParticipantId)) eq 0>
        <cfinput type="button" name="checkunique" value="Check if Unique" />
        <cfinput type="hidden" name="participant_id_valid" value="false" />
    </cfif></p>
  

Это вызывающий скрипт

 $("#checkunique").click(function() {
    $.get('participant_id_check.cfm?participant_id='   $('#participant_id').val(), function(data) {
        result = data.replace(/^s |s $/g,"");
        if (result) {
            $('#unique-result').text('Your Participant ID is accepted');
        } else {
            $('#unique-result').text('Your Participant ID has already been used.  Please enter another');
        }
    });
});
  

Вот страница вызова. Если я вызываю его непосредственно в URL, он работает нормально.

 <!--- Check the database to ensure that the participant ID entered doesn't already exist (only for new entries). --->
<cfparam name="url.participant_id" default="" type="string" />

    <cfquery name="checkID" datasource="#APPLICATION.strConfig.datasource#">
        SELECT sessionid
        FROM tblsessions
        WHERE participant_id = <cfqueryparam cfsqltype="cf_sql_varchar" value="#url.participant_id#" null="no" />
    </cfquery>

    <!--- No record found; value is unique --->
    <cfif Not checkID.RecordCount>
        Yes 
    <cfelse>
        No <!--- Record found; value is not unique--->
    </cfif>
  

Ответ №1:

Вы используете $.get неправильно, попробуйте это:

 $("#checkunique").click(function() {
    $.get('participant_id_check.cfm',
          {'participant_id': $('#participant_id').val()}, function(data) {
        result = data.replace(/^s |s $/g,"");
        if (result) {
            $('#unique-result').text('Your Participant ID is accepted');
        } else {
            $('#unique-result').text('Your Participant ID has already been used.  Please enter another');
        }
    });
});
  

Также побочный момент, у вас ничего нет с, id='participant_id' поэтому $('#participant_id').val() , вероятно, вы ничего не получите

Комментарии:

1. Нет, хотя то, что опубликовал OP, не является хорошим способом, он все равно будет работать.

2. Coldfusion автоматически генерирует атрибут id на основе того, что содержит атрибут name.

3. @Neal <del>Вероятно, это ключ здесь! </del> РЕДАКТИРОВАТЬ , а может и нет. В любом случае, это отдельная проблема от get() правильного использования; обе формы будут работать.

4. Сейчас скрипт работает нормально, но я все еще получаю пустой результат. Пытаюсь отладить, проблема с ColdFusion или нет.