Jump to content
php.lv forumi

Par input kastēm un info. saņemšanu


m8t

Recommended Posts

Tātad, man ir izveidots cikls, kurš izdrukā X rindiņas. Katrā rindiņā ir divas input kastes. Kā saņemt šāda veida informāciju?

<?php
while($x < $a) {
 echo '<input type="text" name="a" /> <input type="text" name="b" />';
 $a++;
}

Kodā redzamajā variantā tiks ņemts vērā tikai pēdējo kastu saturs. Pēc idejas jau varetu pievienot katrai kastei savu ID, bet tad servera pusē, pie saņemšanas, būtu jātaisa vēlviens cikls.

<?php
$brum = count($_POST) / 2;
while($brum >= 0) {
$_POST['a'.$brum];
$_POST['b'.$brum];
$brum--;
}

 

Man īsti šis variants neiet pie sirds. Vai ir labāks veids?

Link to comment
Share on other sites

<?php
while($x < $a) {
 echo '<input type="text" name="a" /> <input type="text" name="b" />';
 $a++;
}

Kad Tavuprāt cikls beigs drukāt?:)

 

Bet tā jau vari

echo '<input type="text" name="a'.$x.'" /> <input type="text" name="b'.$x.'" />';

un saņemt kā a1,a2...ax un b1,b2...bx tos POST.

Link to comment
Share on other sites

@monkuls

Jā.. paldies... es tiko to variantu jau uzdrukāju uz ātru roku un prasīju, vai nav labāks variants, bet atbildē saņemu: "Bet tā jau vari"? Sorry, bet, laikam, neesi sapratis jautājumu.

Link to comment
Share on other sites

abi varjanti ir kreizii :(

izmantojiet MASIVUS ;)

piedevam nafig tur WHILE cikls? ja shadiem merkjiem domats FOR

<?php
for($i=0; $i<$x; $i++) {
 echo '<input type="text" name="a['.$i.']" /> <input type="text" name="b['.$i.']" />';
}

un POSTa sanjemsi 2 masivus

$_POST['a'] un $_POST['b']

abi mainigie saturees:

$_POST[a][0].... $POST[a][n] (kur n buus == $x)

/ $x jebkursh vesels skaitlis , tobish cik nu tev too rindiju tur vajag ../

edit : preciizak n buus $x-1 , jo masivu numercija sks ar 0 ....

Edited by Grey_Wolf
Link to comment
Share on other sites

Man liekas ka formas elementi ar vienādiem vārdiem nonāk iekš PHP kā masīvi.

Tikai teoretiski, pie apstaklju sakritiibas .... :(

Garantijas nav nekaadas ... viss atkariigs no brauzera godaprta + X apstakljiem .

laba programmetaja PIENAKUMS ir noverst shos X apstakljus ...

Edited by Grey_Wolf
Link to comment
Share on other sites

Tikai teoretiski, pie apstaklju sakritiibas .... :(

Garantijas nav nekaadas ... viss atkariigs no brauzera godaprta + X apstakljiem .

Es ar FireBug kādreiz skatījos, viņš $_POSTā rādīja "name=123&name=234&name=345", vai kaut kā tā. Ne visi browseri tā dara? PHP galā it kā atšķirībām būt nevajadzētu.

Link to comment
Share on other sites

Lūgšu vēl mazliet palīdzību. Kā pārgrupēt šādu koku:

Array ( 
  [a] => Array ( 
      [0] => 8 
      [1] => 12 
      [2] => ) 
  [b] => Array ( 
      [0] => 00 
      [1] => 33 
      [2] => ) 
)

Par šādu:

Array ( 
  [1] => Array ( 
      [a] => 8 
      [b] => 00) 
  [2] => Array ( 
      [a] => 12 
      [b] => 33) 
  [3] => Array ( 
      [a] =>  
      [b] => ) 
)

 

Pēc idejas jau varētu ar:

		foreach($_POST AS $p=>$val) 
		{
			$c = 0;
			while($c < count($val)) 
			{
				$ar[$c][$p] = $val[$c];
				$c++;
			}
		}
		print_r($ar);

Bet ak šie cikli ciklos..

Edited by m8t
Link to comment
Share on other sites

Pēc idejas jau varētu ar:

		foreach($_POST AS $p=>$val) 
		{
			$c = 0;
			while($c < count($val)) 
			{
				$ar[$c][$p] = $val[$c];
				$c++;
			}
		}
		print_r($ar);

Bet ak šie cikli ciklos..

a kapec negribi izmantot FOR ??

Ja uzreiz zini ka b==a tad var shadi

$skaits=count($_POST['a']);
for($i=0; $i<$skaits; $i++){
$x[0]=$_POST['a'][$i]; // shja briidi arii var veikt parbaudi par datu atbilstiibu etc..
$x[1]=$_POST['b'][$i];

$gala_masivs[$i]=$x;
}

Protams nesaku ka kods ir optimals, bet stradat vajdzetu

edit:

ja vajag saglabat tos a/b tad

$x['a']=$_POST['a'][$i]; .....

attiecigi otram(vai ntajam tapat)

Edited by Grey_Wolf
Link to comment
Share on other sites

Šausmīgi esmu atradinājies no for. Kāpēc? Nezinu, kaut kā sanāca..

Vispar jau cikla konstrukciju jaizvelas pec dotaa uzdevuma, ja ciklam vajag skaitiitaju tad FOR ir labs varjants (protams nevienmeer)

Edited by Grey_Wolf
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
Reply to this topic...

×   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...