Jump to content
php.lv forumi
  • 0

Multiple input


eT`

Question

Tā, es admincp vēlos uztaisīt vietā, kur pievieno seriāliem sērijas, lai apakšā ir links pievienot vēl un tad zem jau esošajiem parādēs vēl tādi paši inputi ( vairākos saitos tāds ir failu uploadam )

Un pie ievietošanas datubāzē varbūt kāds māk pastāstīt, kā ar array() vai ko citu ievietot vairākus.

Edited by eT`
Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

Notestē...

 

<form method="post" action="?">
<input type="text" value="1" name="masiivs[]" /><br/>
<input type="text" value="2" name="masiivs[]" /><br/>
<input type="text" value="3" name="masiivs[]" /><br/>
<input type="text" value="4" name="masiivs[]" /><br/>
<input type="text" value="5" name="masiivs[]" /><br/>
<input type="text" value="6" name="masiivs[]" /><br/>
<input type="text" value="7" name="masiivs[]" /><br/>
<input type="text" value="8" name="masiivs[]" /><br/>
<input type="text" value="9" name="masiivs[]" /><br/>
<input type="submit"/>
</form>

 

Ko pēc tam satur $_POST... (pačukstēšu priekšā funkciju - print_r();)

 

 

..Ja ar JS māki dinamiski pievienot elementus, tad nevajadzētu būt problēmām izdomāt pārējo...

Link to comment
Share on other sites

  • 0

briedi, es laikam neuzķēru tavu domu. :)

un nē nemāku ar JS bijis mazs sakars.

 

<form method="post" action="?action=pievienot">
<table width="100%" cellspacing="3" cellpadding="0">
<tr><td><b>Seriāls:</b></td>
<td><select name="tv">
<?
$selecte = mysql_query("SELECT * FROM seriali");
while($row = mysql_fetch_array($selecte))
{
?><option value="<?=$row["id"]?>"><?=$row["title"]?></option><?
}
?>
</select></td></tr>
<tr><td><b>Sezona:</b></td>
<td><input type="text" name="season" size="25" style="height: 20px;width: 50px;font-size: 12px;border: solid 1px #c0c0c0;background: #FFF;color: #000;"></td></tr>
<tr><td><b>Sērija:</b></td>
<td><input type="text" name="episode" size="25" style="height: 20px;width: 50px;font-size: 12px;border: solid 1px #c0c0c0;background: #FFF;color: #000;"></td></tr>
<tr><td><b>Nosaukums:</b></td>
<td><input type="text" name="title" size="25" style="height: 20px;width: 400px;font-size: 12px;border: solid 1px #c0c0c0;background: #FFF;color: #000;"></td></tr>
<tr><td><b>FLV links:</b></td>
<td><input type="text" name="text" size="25" style="height: 20px;width: 400px;font-size: 12px;border: solid 1px #c0c0c0;background: #FFF;color: #000;"></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="Pievienot!" style="height: 30px;width: 90px;font-size: 12px;border: solid 1px #ccc;background: #ccc;color: #000; font-weight:bold"></td></tr></table></form>

 

un it kā reāli atkārtot vajadzētu FLV linka vietu un nosaukuma vietu.

un tad jāizdomā pāris lietas tagad:

kā to izdarīt?

kā ievietot DB bet tā lai visi ievietojas ( masīvi vienkārši ienāca prātā )

tad kā tam sērijas ide pievienot 1 katram nākamajam ( $ieprieksejais + 1 )

 

ev domājot par to +1 man ienāca prātā ideja par pievienošanu:

 

for($i=sākumapostavērtība;$i<=$beigupostavērtība;$i++)

{

INSERT INTO ...

}

 

maybe dumi, bet nezinu...

Link to comment
Share on other sites

  • 0

google: dynamic input field

bet js tev kaut cik jāzin anyway. vai arī iebliez uzreiz vairākus laukus, kā briedis rādīja

 

kad vajag insertot vairākas/daudzas vērtības, tad nav obligāti jātaisa daudzi insert. var arī ar vienu insert un daudzām value

INSERT t (...) VALUES (...), (...), (...), (...), (...), (...), ...

vnk jāsaformē šāds strings un tad 1x db darbība (vismaz es tā daru dēļ performances, bet who cares...)

Link to comment
Share on other sites

  • 0

var jau brūtāli ar php, vispirms pasakot, cik laukus pievienosi :)

 

Drukājot formu...

for($i=0;$i<$cik_lauki;$i++){
echo "<input type='text' name='lauks[]'/>";
}

 

Tad apstrādājot...

foreach($_POST['lauks'] as $lauks){
echo "Pievienots: $lauks<br/>";
}

Link to comment
Share on other sites

  • 0

tamm es it kā uzliku šādu:

 

HEAD tagos ieliku JS

<script language="Javascript" type="text/javascript">
<!--
//Add more fields dynamically.
function addField(area,field,limit) {
if(!document.getElementById) return; //Prevent older browsers from getting any further.
var field_area = document.getElementById(area);
var all_inputs = field_area.getElementsByTagName("input"); //Get all the input fields in the given area.
//Find the count of the last element of the list. It will be in the format '<field><number>'. If the 
//		field given in the argument is 'friend_' the last id will be 'friend_4'.
var last_item = all_inputs.length - 1;
var last = all_inputs[last_item].id;
var count = Number(last.split("_")[1]) + 1;

//If the maximum number of elements have been reached, exit the function.
//		If the given limit is lower than 0, infinite number of fields can be created.
if(count > limit && limit > 0) return;

if(document.createElement) { //W3C Dom method.
	var li = document.createElement("li");
	var input = document.createElement("input");
	input.id = field+count;
	input.name = field+count;
	input.type = "text"; //Type of field - can be any valid input type like text,file,checkbox etc.
	li.appendChild(input);
	field_area.appendChild(li);
} else { //Older Method
	field_area.innerHTML += "<input name='"+(field+count)+"' id='"+(field+count)+"' type='text' />";
}
}
//-->
</script>

 

un HTML daļa:

<tr>
<td>
<b>Nosaukums:</b>
</td>
<td>
<div id="title_area">
<input type="text" name="title_1" id="title_1" size="25" style="height: 20px;width: 400px;font-size: 12px;border: solid 1px #c0c0c0;background: #FFF;color: #000;">
</div>
<input type="button" value="Pievienot vēl!" onclick="addField('title_area','title_',30);" class="button" />
</td>
</tr>
<tr>
<td>
<b>FLV links vai adrese</b>
</td>
<td>
<div id="text_area">
<input type="text" name="text_1" id="text_1" size="25" style="height: 20px;width: 400px;font-size: 12px;border: solid 1px #c0c0c0;background: #FFF;color: #000;">
</div>
<input type="button" value="Pievienot vēl!" onclick="addField('text_area','text_',30);" class="button" />
</td>
   </tr>

 

tammm man tagad strādā tā pievienošanas HTML daļa vēl jātiek galā ar PHP,SQL

briedi iegāju php.net un palasīju par to foreach

it kā būtību mazliet sapratu bet manā gadījumā masīvam nav noteikts skaits vērtību

es jau nevaru likt

 

$post_title = $_POST["title_"];

$masivs_title = array($post_title);

foreach($masivs_title as $t)

{

$title = $t;

}

$post_text = $_POST["text_"];

$masivs_text = array($post_text);

foreach($masivs_text as $z)

{

$text = $z;

}

 

un tad INSERT INTO ... man inserts jāliek iekš foreach, nē tas galīgi neder.

 

vai nav kāda iespēja piem visus, kas ir title_ ielikt masīvā un tad ar kautko kvērijā sadalīt.

nezinu vai vispār sakarīgi uzrakstīju :D

 

piem masivs_title(visis post title_ ) un tad kvērijā explode ( tā laikam bija tā f-ja, īsti nezinu )

Link to comment
Share on other sites

  • 0

tammm patestēju strādā ( mazliet neērti, jo jānokliko kkur citur lai parādītos jauns teksta lauks, bet vienalga )

tagad tikai jāizštuko PHP daļa.

 

man pašlaik ir šādi:

if(isset($_POST["tv"]) && isset($_POST["season"]) && isset($_POST["episode"]) && isset($_POST["title"]) && isset($_POST["text"]))
{
$datums = date("Y-m-d");
$serials = $_POST["tv"];
$k = mysql_fetch_array(mysql_query("SELECT seoid FROM seriali WHERE id='$serials'"));
$seoid = $k["seoid"];
$seoid2 = seo_string($_POST["title"]);
$sezona = $_POST["season"];
$serija = $_POST["episode"];
$title = $_POST["title"];
$kods = $_POST["text"];
mysql_query("INSERT INTO episodes (seoid,seoid2,tvid,episode,season,title,code,added) VALUES ('$seoid','$seoid2','$serials','$serija','$sezona','$title','$kods','$datums')");
mysql_query("UPDATE seriali SET episodes = CONVERT(episodes,UNSIGNED) + 1 WHERE id='$serials'");
echo "<script language='JavaScript'>window.location='tv.php';</script>";
}

 

vai tad visi tie, kas man ar to title[] ir masīva elementi?

tad piemēram kā var noskaidrot cik viņu ir?

un, tad es varētu darīt tā:

 

$episode = $_POST["a"];
$skaits = //cik masiva elementi 
$galejais = $episode + $skaits;
for($i=$episode;$i<=$galejais;$i++)
{
$serija = $i;
$title = //masiva elements
$kods = //otra masiva elements ar vienadu [?]
mysql_query("INSERT INTO episodes (seoid,seoid2,tvid,episode,season,title,code,added) VALUES ('$seoid','$seoid2','$serials','$serija','$sezona','$title','$kods','$datums')");
}

 

ā un HTML daļa ir tāda kā devi:

<input type="text" name="text[]" id="title" size="25" style="height: 20px;width: 400px;font-size: 12px;border: solid 1px #c0c0c0;background: #FFF;color: #000;" onchange="if (counter<11) {clone(this, event); counter++}">

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...