Nano Hash - криптовалюты, майнинг, программирование

HTML-форма не сохраняет поля проверки или радио, которые БЫЛИ отключены

У меня есть HTML-форма, которая отправляет в базу данных MySQL через PHP. Форма работает и отлично сохраняется, пока я не ввожу JavaScript, чтобы показывать только определенные поля в зависимости от ответов пользователей. Большинство полей вначале отключены, а затем включаются после выбора/ввода определенных ответов.

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

Кто-нибудь знает, почему? Или есть какие-либо предложения о том, как узнать, что вызывает проблему? Я должен подчеркнуть, что отключение и включение ввода на уровне HTML работает нормально. Проблема как-то связана с JavaScript или PHP.

Следующий код является ПРИМЕРОМ структуры/формата JavaScript, который я использовал, и причина публикации этого фрагмента заключается в том, что он самый простой, который у меня есть:

<script>
    $(function () {
    $("#wq_7_host_0, #wq_7_host_1").change(function () {
        $("#wq_7_hostprov, #wq_7_hostprice, #wq_7_email_0, #wq_7_email_1, #wq_7_email_2").val("").attr("disabled", true);
    if ($("#wq_7_host_0").is(":checked")) {
        $("#wq_7_hostprov, #wq_7_hostprice, #wq_7_email_0, #wq_7_email_1, #wq_7_email_2").removeAttr("disabled");
        $("#wq_7_hostprov").focus();
    } else if ($("#wq_7_host_1").is(":checked")) {
        $("#wq_7_email_0, #wq_7_email_1, #wq_7_email_2").removeAttr("disabled");
        $("#wq_7_email_1").focus();
    }
    });
    });
</script>

Мой PHP:

 <?php
// Database connection string
$dbConn = mysql_connect("info", "info", "info")
or die("Could not connect: " + mysql_error());

mysql_select_db("info", $dbConn)
or die("Could not find database: " + mysql_error());

// create variables from informatin passed from the form

$wq__0_formid = $_POST['wq__0_formid'];
$wq_0_date = $_POST['wq_0_date'];
$wq_0_prona = $_POST['wq_0_prona'];
$wq_1_conna = $_POST['wq_1_conna'];
$wq_1_comna = $_POST['wq_1_comna'];
$wq_1_no = $_POST['wq_1_no'];
ETC
 //if no email exists, add the user to the database //Left values are database names and right are variables declared above
 mysql_query("INSERT INTO webform 
(wq__0_formid, wq_0_date, wq_0_prona, wq_1_conna, wq_1_comna, wq_1_no, wq_1_str, wq_1_tow, wq_1_cit, wq_1_coun, wq_1_pos, wq_1_conno, wq_1_eadd, wq_1_trad, wq_1_tradlo_years, wq_1_tradlo_months, wq_1_tradda, wq_2_web, wq_2_webadd, ETC) VALUES('$wq__0_formid', '$wq_0_date', '$wq_0_prona', '$wq_1_conna', '$wq_1_comna', '$wq_1_no', '$wq_1_str', '$wq_1_tow', '$wq_1_cit', '$wq_1_coun', '$wq_1_pos', '$wq_1_conno', '$wq_1_eadd', '$wq_1_trad', '$wq_1_tradlo_years', '$wq_1_tradlo_months', '$wq_1_tradda', '$wq_2_web', '$wq_2_webadd' ETC)") 

 or die(mysql_error()); 

//email customer to let them know login was successful and verify details
 $to = "$wq_1_eadd";
 $subject = "subject";
 $body = "Hi $wq_1_conna, 
 Message";
 if (mail($to, $subject, $body)) {
    ?>
<script language="javascript" type="text/javascript">
        alert('Thanks <?PHP echo $wq_1_conna ?>. We will review the information you have provided and contact you shortly.');
    window.location = 'index.html';
</script>
<?php  } 
else
 {
   ?>
    <script language="javascript" type="text/javascript">
        alert('Message failed. Please, get in touch with us via email address.');
    window.location = 'index.html';
</script>
<?php
  }
 ?>

  • вам нужно показать нам свой код 11.04.2013
  • Нет ответов без кода 11.04.2013

Ответы:


1

См. эту статью, и вы поймете.
Я думаю, вам нужно отключить ввод в JS, потому что отключенный элемент ввода не будет отправлен.
И если он еще не работает, добавьте скрытый ввод, который вы заполнить с помощью JS, в зависимости от выбора радио.

[РЕДАКТИРОВАТЬ]

В Jquery вы можете сделать это, используя этот метод:

var postData = new Array();
$('#myform').find('input:text,input:radio:checked, input:checkbox:checked').each(function() {
    postData.push({$(this).attr('name') : $(this).val()});
});

[НОВЫЙ]

Вы можете изменить строку postData на: см. тему SO

var postData = {};
$('#myform').find('input:text,input:radio:checked, input:checkbox:checked').each(function() {
    postData[$(this).attr('name')] = $(this).val();
});

Затем вызовите метод Ajax и отправьте массив postData.

[СКРИПКА]

В своей скрипке вы отказались использовать массив postData. Я добавляю (здесь) вызов ajax для отправки postData в сценарий PHP.
Конечно. , вам придется изменить некоторые параметры, такие как url и success. Но это будет хороший путь.

[ОТКЛИК]

На самом деле проблема была в структуре базы данных (нет значения по умолчанию) и в PHP-запросе. Вы должны добавить значения по умолчанию для каждого столбца, а в PHP вы должны определить все переменные, которые вы будете использовать.

11.04.2013
  • Форма работает с точки зрения пользователя, отключая и активируя поля и позволяя пользователю вводить информацию. 11.04.2013
  • Возможно, публикация формы с помощью jQuery позволит вам получить все входное содержимое благодаря $('#myform').serialize(); 11.04.2013
  • Вы пытались реализовать свой собственный метод сериализации, как в моем отредактированном посте? 11.04.2013
  • Извините, ошибка - это метод получения значения для флажка/радио... Я изменю его! 11.04.2013
  • Нет пота, я ценю вашу помощь 11.04.2013
  • Я только что изменил свою функцию... Теперь она работает для вас? Если нет, не могли бы вы объяснить, что произошло, и ошибку, если она есть. 11.04.2013
  • правильно, поэтому я вставил следующий код в свой HTML в тегах скрипта: $('#webquest_form').find('input:text,input:radio:checked, input:checkbox:checked').each(function() { $postData .push({$(this).attr('name') : $(this).val()}); }); и он по-прежнему возвращает синтаксическую ошибку в строке $postData.... Я делаю что-то неправильно? 11.04.2013
  • без изменений, к сожалению, по-прежнему не сохраняет значения, требующие выбора 11.04.2013
  • Я поместил свой PHP в раздел CSS, очевидно, это не сработает, но вы можете видеть, что я делаю. 11.04.2013
  • Не забудьте поставить ссылку на скрипку, потому что она меняется каждый раз, когда вы ее ОБНОВЛЯЕТЕ. 11.04.2013
  • давайте продолжим это обсуждение в чате 11.04.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..