У меня есть два файла: index.php и sql-add.php.
Содержимое index.php:
<?php
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
if ($action == 'postResult')
{
$data1selected = $_POST['data1'];
$data2selected = $_POST['data2'];
$data3selected = $_POST['data3'];
$data4text = $_POST['data4'];
$data5text = $_POST['data5'];
$data6text = $_POST['data6'];
$data7text = $_POST['data7'];
$data8text = $_POST['data8'];
echo '<b>Данные с формы следующие:</b><br>';
if ($data1selected!='')
{
echo '<br>Поле data1: '.$data1selected;
}
else
{echo '<br>Поле data1 пустое!';}
if ($data2selected!='')
{
echo '<br>Поле data2: '.$data2selected;
}
else
{echo '<br>Поле data1 пустое!';}
..пропущу часть условий, тут и так думаю все ясно...
if ($data8text!='')
{
echo '<br>Поле data8: '.$data8text;
}
else
{echo '<br>Поле data8 пустое.';}
$htmlcode = <<<HERE
Нажмите кнопку 'Подтвердить запрос'.<br>
<input name='sendok1' type='submit' value='Подтвердить запрос' onclick='infor.style.display="block"' />
<div style='display:none;' id='infor'>Информация о запросе сохранена в базе данных.</div>
HERE;
echo "<br><br>".$htmlcode;
exit;
}
<html>
<head>
<title>тест</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</head>
<body>
<form action="index.php" method="post">
<b>Данные запроса</b><br>
Дата1: <select name="data1">
<option>1</option>
<option>2</option></select>
<br>
Дата2: <select name="data2">
<option>1</option>
<option>2</option></select>
<br>
..пропущу часть условий, тут и так думаю все ясно...
<br><label for="data8">Дата8:</label> <input id="data8" name="data8" type = "text" > <br>
<input type="hidden" name="action" value="postResult" />
<br> <br><input name="sendzapros" type="submit" value="отправить">
</form>
</body>
</html>
содержимое sql-add.php:
<?php
error_reporting(E_ALL);
ini_set('desplay_errors','1');
$host='localhost';
$database='bazaname';
$user='bazauser';
$pswd='123';
$dbconn = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");
if (!$dbconn) {
echo "Ошибка подключения к серверу MySQL<br>";
exit;
}
echo "Соединение с сервером MySQL усановлено<br>";
if (!mysql_select_db($database)) {
echo "Ошибка при выборе БД ".$database." MySQL<br>";
exit;
}
echo "Выбор БД ".$database." MySQL произведен успешно<br>";
$data1='дата1';
$data2="data2";
$data3="data3";
$data4="data4";
..пропущу...
$data8="data8";
mysql_query("INSERT INTO Table1 (data1,data2,data3,data4,(здесь еще 5,6,7),data8) values ('$data1','$data2','$data3', '$data4', '(здесь еще 5,6,7)', '$data8')");
echo "В таблицу Table1 добавлены данные запроса <br>";
if (mysql_close($dbconn)) {
echo "Соединение с БД ".$host." закрыто";
}
?>
Мой вопрос заключается в следующем: как можно записать в бд bazaname данные data1...data8 после нажатия кнопки 'Подтвердить запрос' ?
Я пробовал через аякс вот так правил участок index.php:
$htmlcode = <<<HERE
<form id='forma' target='index' action='index.php' method='POST'>
Нажмите кнопку 'Подтвердить запрос'.<br>
<input name='sendok1' type='submit' value='Подтвердить запрос' onclick='infor.style.display="block"' />
<div style='display:none;' id='infor'>Информация о запросе сохранена в базе данных.</div>
</form>
<iframe name='index' frameborder='0' src='index.php' width='0' height='0' scrolling='no'></iframe>
HERE;
А потом добавил перехват пост запроса вот в этом условии:
if ($action == 'postResult')
{
.....
echo "<br><br>".$htmlcode;
if (isset($_POST['sendok1'])){
echo "Ура!";
//ну и здесь скопировал все из файла sql-add.php
exit;
}
exit;
}
Но ничего не записалось в бд...
Тогда я попробовал отправлять через аякс пост запрос файлу sql-add.php вида:
<script type="text/javascript">
$.post(
"sql-add.php",
{
action: "sqladd1"
},
onAjaxSuccess
);
function onAjaxSuccess(data)
{
alert(data);
}
</script>
Я его вставил вот сюда:
$htmlcode = <<<HERE
<script type="text/javascript">
function sqladdfunc()
{
$.post(
"sql-add.php",
{
action: "sqladd1"
},
onAjaxSuccess
);
function onAjaxSuccess(data)
{
alert(data);
}
}
</script>
Нажмите кнопку 'Подтвердить запрос'.<br>
<input name='sendok1' type='submit' value='Подтвердить запрос' onclick='sqladdfunc();' />
<div style='display:none;' id='infor'>Информация о запросе сохранена в базе данных.</div>
HERE;
echo "<br><br>".$htmlcode;
А в файле sql-add.php сделал перехват этого поста:
<?php
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
error_reporting(E_ALL);
ini_set('desplay_errors','1');
if ($action == 'sqladd1')
{
$host='localhost';
$database='bazaname';
$user='bazauser';
$pswd='123';
$dbconn = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");
if (!$dbconn) {
echo "Ошибка подключения к серверу MySQL<br>";
exit;
}
echo "Соединение с сервером MySQL усановлено<br>";
if (!mysql_select_db($database)) {
echo "Ошибка при выборе БД ".$database." MySQL<br>";
exit;
}
echo "Выбор БД ".$database." MySQL произведен успешно<br>";
$data1='дата1';
$data2="data2";
$data3="data3";
$data4="data4";
..пропущу...
$data8="data8";
mysql_query("INSERT INTO Table1 (data1,data2,data3,data4,(здесь еще 5,6,7),data8) values ('$data1','$data2','$data3', '$data4', '(здесь еще 5,6,7)', '$data8')");
echo "В таблицу Table1 добавлены данные запроса <br>";
if (mysql_close($dbconn)) {
echo "Соединение с БД ".$host." закрыто";
}
}
?>
Но опять ничего не вышло... Ни записи в бд, ни алерта даже..
Укажите на ошибки плиз, а может кто знает вариант попроще и я просто ломаю голову зря?...