Как да приема информация от формата?

smeshko2008

Registered
Няма да губя време в обяснение, вижте :arrow: този линк. Искам когато се кликне на бутона "Добави нов ред" да добавя същия ред със същите елементи на формата, само че при name-овете да има няква разлика. Също така как после да използвам тези данни в PHP?

Благодаря предварително :)
 
Ам, ти не четеш ли какво питам? :lol: Естествено че по този начин става, въпроса ми е друг: след като се добави новото име, за него се генерира някакво "name" в input-а, нали? За всеки нов ред да речем накрая на name-а ще има едно [цифра]. Например за инпут-а на датата, name-а си е date, а като се добави нов ред, името на новия ще е date[0], ако се добави следващ - date[1] и т.н. Въпроса ми е как да ги взема поотденло и да ги в карам в База данни, като дори не знам колко брoя ще има? Знам само че ще стане с масив, но не знам синтаксиса, за това моля някой да напише едно примерно кодче :?:
 
Съжалявам, че пиша второ мнение, но след като никой не ми отговори, се наложи да си го напиша сам.

Вече измислих начин как да добавям нови редове (може би сте забелязали). Вече въпроса опира до това, че не мога да разбера как може да се вкарат данните на всеки отделен ред в база данни, като модела на имената на input-а е:

<input name="date[0]" type="text" />

???

Edit:
Код:
<?php
mysql_connect("localhost", "***", "***") or die(mysql_error());
mysql_select_db("***") or die(mysql_error());

$zaqvka = mysql_query("SELECT * FROM `euro_otbori` ORDER BY `ime` ASC") or die('Error 1: '.mysql_error());

while($red = mysql_fetch_array( $zaqvka )) {
$otbor1.='<option value="'.$red['id'].'">'.$red['ime'].'</option>
';
$otbor2.='<option value="'.$red['id'].'">'.$red['ime'].'</option>
';
}
if($_GET['times']!=''){
$n=0;
$get1 = $_GET['times']-1;
for($i = 0; $i <= $get1; $i++){
$zadnik .= '<tr><td>'.$i.'</td><td><input type="text" name="datа['.$i.']" /></td><td><input type="text" name="chas['.$i.']" /></td><td><select name="otbor1['.$i.']"><option>Изберете отбор 1</option>'.$otbor1.'</select></td><td><select name="otbor2['.$i.']"><option>Изберете отбор 2</option>'.$otbor2.'</select></td><td><input name="1['.$i.']" type="text" size="2" maxlength="4" /></td><td><input name="x['.$i.']" type="text" size="2" maxlength="4" /></td><td><input name="2['.$i.']" type="text" size="2" maxlength="4" /></td></tr>';
}
}else{$_GET['times'].=1;}

if($_POST['Submit']){
for($i = 0; $i <= $get1; $i++){

$data = $_POST['$data['.$i.']'];
$chas = $_POST['$chas['.$i.']'];
$otbor_f1 = $_POST['$otbor1['.$i.']'];
$otbor_f2 = $_POST['$otbor2['.$i.']'];
$k1 = $_POST['1['.$i.']'];
$kx = $_POST['x['.$i.']'];
$k2 = $_POST['2['.$i.']'];
$time = time();

if($data==''){die('Не е въведена дата на игра на мача на ред '.$i.'!!!');}
if($chas==''){die('Не е въведен час на игра на мача на ред '.$i.'!!!');}
if($otbor_f1==''){die('Не е въведен първият отбор на ред '.$i.'!!!');}
if($otbor_f2==''){die('Не е въведен вторият отбор на ред '.$i.'!!!');}
if($k1==''){die('Не е въведен коефициент за 1 на ред '.$i.'!!!');}
if($kx==''){die('Не е въведена коефициент за X на ред '.$i.'!!!');}
if($k2==''){die('Не е въведена коефициент за 2 на ред '.$i.'!!!');}
if( ($data!='') && ($chas!='') && ($otbor_f1!='') && ($otbor_f2!='') && ($k1!='') && ($k2!='') && ($k3!='')){
$my = mysql_query("INSERT INTO `euro_machove` ( `id` , `data` , `chas` , `otbor_1` , `otbor_2` , `a1` , `ax` , `a2` , `time` )
VALUES (
'', '$data', '$chas', '$otbor_f1', '$otbor_f2', '$k1', '$kx', '$k2', '$time'
);") or die('Error: '.mysql_error());
if($my){echo('Dobaven e!!! <meta http-equiv="Refresh" content="10; URL=\'http://nevena-tsoneva.net/show.php?time='.$_GET['time'].'"/>');}
}
}

}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"  />
<title>Euro</title>
<style type="text/css">

</style>
  <script language="JavaScript">
    function showAttFile() {
      if (fileIndex <= 15) {
        try {document.getElementById("attFile" + fileIndex).style.display = "table-row";} 
        catch (e) {document.getElementById("attFile" + fileIndex).style.display = "block";}
			  if (fileIndex == 15) {
			    document.getElementById("attFileLink").style.display = "none";
			  }
        fileIndex++;
      }
    }
	</script>
</head>
<body>
<form name="newad2" method="get" enctype="multipart/form-data" action="">
<input type="text" name="times" ><input type="submit" value="реда">
</form><br>
<br>


<form name="newad" method="post" enctype="multipart/form-data" action="">
<table border="1" class="bor">
<tr>
  <td>Ред </td>
  <td>Дата (00.00.0000) </td>
  <td>Час (00:00)</td>
  <td>Отбор 1</td><td>Отбор 2</td><td>1</td><td>X</td><td>2</td></tr>
<?php echo($zadnik); ?>
</table>
<input type="button" value="Добави нов ред" onClick="" />
<input type="submit" value="Изпрати" />
</form>
</body>
</html>

Странно, пробвах така, ама не стана, какво мислите? Май доста ви затрудних, а :P
 
файловия мениджър на hit.bg e maka :)
<input type="button" value="Добави нов ред" onClick="Тука JS" />
... като formcount om JS може да се постне hidden.
 
ами всички полета трябва да са array:
.................
<input name="date[]" type="text" />
................
всички елементи на формата са array и ги обхождаш с foreach, т.е.
$tmp=0;
foreach($_POST['data'] as $val1){
$стойност = $val1[$tmp];
$tmp++;
/* и така за всички елементи */
// INSERT QUERY here
}
 
Добре, нека приемем че съществува елементът data[0] - data[2] - това са 3 стойности (0, 1 и 2).

Тогава кода би трябвало да стане:

$tmp=0;
foreach($_POST['data[0]'], $_POST['data[1]'], $_POST['data[2]'] as $val1){
$какво трябва да е тука? = $val1[$tmp];
$tmp++;
mysql_query('INSERT INTO `euro_machove` ( `data`) VALUES ( "($data ли трябва да е тука?)")');
}

Сорка, ма малко не го разбрах :) Ако можеш да ми кажеш ще ти се отплатя както трябва :?:
 
ето този урок http://web-tourist.net/login/login/view.php?st=1765 на TiMaTa го преработих така:
Код:
<head>
<meta charset="UTF-8">
</head>
<?php
$host="localhost"; // Сървъра
$username="root"; // Mysql потребителско име
$password="******"; // Mysql парола
$db_name="test"; // ДБ име
$tbl_name="test_mysql"; // Име на таблицата

// Свързване към дб
$db = mysql_connect($host,$username,$password);
(empty($db)) ? die("Не може да се свържи"):mysql_query("set names utf8",$db);
mysql_select_db($db_name,$db);
// Започване на триенето
if($_POST['delete']) foreach ($_POST['checkbox'] as $del_id) mysql_query("DELETE FROM ".$tbl_name." WHERE id=".intval($del_id),$db);

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql,$db);

$count=mysql_num_rows($result);

?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="form1" method="post" action="<?php echo($_SERVER['PHP_SELF']);?>">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF"> </td>
<td colspan="4" bgcolor="#FFFFFF"><strong>Изтриване от БД</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>Номер</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Име</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Фамилия</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Е-Майл</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<?php echo $rows['id']; ?>"></td>
<td bgcolor="#FFFFFF"><?php echo $rows['id']; ?></td>
<td bgcolor="#FFFFFF"><?php echo $rows['name']; ?></td>
<td bgcolor="#FFFFFF"><?php echo $rows['lastname']; ?></td>
<td bgcolor="#FFFFFF"><?php echo $rows['email']; ?></td>
</tr>
<?php
}
mysql_close($db);
?>
<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" id="delete" value="Изтрий"></td>
</tr>
</table>
</form>
</td>
</tr>
</table>
b html checkbox-a e деклариран като масив: <input name="checkbox[]"
u после го обхождаш с foreach.
Дори не е нужен $tmp, най-добре е да не увеличаваш броя на формите:всичко е в 1форма, просто OnClick="return javascript:AddFuncia('още елементи от формата');" , a bceku елемент е деклариран в html kamo масив: <input type="text" name="textbox1[]"....
8)
 
Човек, дори и това всичко да не е вярно, няма как да не ти дам +1 :?:

Благодаря ти много, това е въпрос, който много ме измъчваше, сега ще проверя дали всичко става :?:

Още веднъж ти благодаря :?: :?: :?:
 
Благодаря! за checkbox съм дал пример, работил съм и с array om <option> (c multiselect==true) , но с array om <input type="text" нещо не става (a и никога не ми се е налагало де, сега го гледам)-> затова в hit.bg->file manager 3a <input type="file"... javascript-a съставя name=name+variable (разгледай кода им).

за example-mo, koemo съм направил съм преработил и sql:
Код:
CREATE TABLE `test_mysql` (
`id` int(4) NOT NULL auto_increment,
`name` varchar(65) NOT NULL default '',
`lastname` varchar(65) NOT NULL default '',
`email` varchar(65) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
SET NAMES utf8;

INSERT INTO `test_mysql` VALUES (1, 'Име1', 'Фамилия1', 'email@localhost1');
INSERT INTO `test_mysql` VALUES (2, 'Име2', 'Фамилия2', 'email@localhost2');
INSERT INTO `test_mysql` VALUES (3, 'Име3', 'Фамилия3', 'email@localhost3');
INSERT INTO `test_mysql` VALUES (4, 'Име4', 'Фамилия4', 'email@localhost4');
INSERT INTO `test_mysql` VALUES (5, 'Име5', 'Фамилия5', 'email@localhost5');
INSERT INTO `test_mysql` VALUES (6, 'Име6', 'Фамилия6', 'email@localhost6');
Копирай PHP-code b Notepad и му дай File->Save As -> Някакво име, но като UNICODE file, за да нямаш проблем с енкодинга(за примера, дето направих, като преработих урока по-горе говоря).

Някой експерт по HTML ako има идея как да стане array om input-text полета с едно и също име ще е супер, въпреки, че не съм срещал досега.
:)
 
ето примера:
Код:
<html><body>
<?php
if ($_POST['s1']) foreach($_POST['t1'] as $bla) echo($bla."<br /><br />");
?>
<form name="form1" action="<?php echo($_SERVER['PHP_SELF']);?>" method="post">
<input type="text" name="t1[]"><br /><br />
<input type="text" name="t1[]"><br /><br />
<input type="submit" name="s1" value="Submitter">
</form>
</body>
</html>
Едит: c 2думи и за input type="text"/"file" става, въпроса се свежда най-вече до javascript function, c която да се добавят нови полета във вече съществуваща форма, защото на хит.бг работи добре под IE, но Mozilla/Лиско не са на това мнение.
:D
 
Да, това е лесно.. JS няма да ползвам, защото съм на Вие с нея. Вместо това си направих една GET заявчица където да въвеждам едно число и с цикъла for ги изкарвам :) Сега ще го направя, ако имах възможност щях да ти дам втора точка :?:
 

Back
Горе