У меня есть 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
}
?>
$('#myform').serialize();
11.04.2013