Döngü ile oluşturduğum formu Post etmek???

Kodla Büyü

mustafayilmaz28

Süper Üye
Süper Üye
Seçkin Üye
Mesajlar
1,425
merhaba arkadaşlar..
resimdeki form veritabanındaki kayıt sayısı kadar oluşuyor yani döngü ile..
kaydete bastığımda verileri veritabanına kaydetmesini istiyorum..
ama bu fomdaki değişkenleri(textboxları )sanırım bir diziye aktarmam gerekecek bunu nasıl yapacağım bilemedim..
sizlere danışmak istedim.
 

Ekli dosyalar

  • Adsız.png
    Adsız.png
    3.3 KB · Görüntüleme: 920
mustafayilmaz28' Alıntı:
merhaba arkadaşlar..
resimdeki form veritabanındaki kayıt sayısı kadar oluşuyor yani döngü ile..
kaydete bastığımda verileri veritabanına kaydetmesini istiyorum..
ama bu fomdaki değişkenleri(textboxları )sanırım bir diziye aktarmam gerekecek bunu nasıl yapacağım bilemedim..
sizlere danışmak istedim.
Diziye aktarmayı mı bilemediniz yoksa verileri kaydetmeyi mi?
 
alpozturk2002' Alıntı:
Diziye aktarmayı mı bilemediniz yoksa verileri kaydetmeyi mi?
hocam formu oluşturduğumda formelemanları bir döngü neticesinde oluşuyor hangi isimleri alıyorlar onu diziye aktarmakta sorunum var..
 
<?php include("ayar.php");
$sorgum=mysql_query("SELECT * FROM tbl_deneme_odev");
$toplamkayitsayisi = mysql_num_rows($sorgum);
$i=0;
while($sorgu=mysql_fetch_array($sorgum))
{



?>
</td>


<tr>
<td width="17"><?php echo $sorgu['ogrenci_adi'];?></td>
<td colspan="2"><label>
<input name="vize1<?php echo $i;?>"type="text" id="vize1" size="5">
|
<input name="vize2<?php echo $i;?>" type="text" id="vize2" size="5">
|
<input name="finall<?php echo $i;?>" type="text" id="finall" size="5">
</label></td>
</tr>
<?php $i++;} ?>
form göndermesi doğru ise formu alırken nasıl
$vize1[]=$_POst["vize1[]"]
buraya nasıl bir kod yazmalıyım?
 
mustafayilmaz28' Alıntı:
form göndermesi doğru ise formu alırken nasıl
$vize1[]=$_POst["vize1[]"]
buraya nasıl bir kod yazmalıyım?
..
hatırladığım kadarıyla

$vize = $_POST["vize"];

şeklinde çekiyorsunuz. yani form sayfasında [..] şeklinde indisledikleriniz tek bir değişken şeklinde gönderiliyor. yukarıdaki şekilde çektikten sonra

for each ($vize as $eleman)
{
.........
}
şeklinde de bu diziyi parçalayabilirsiniz. parçaladıktan sonra da .... kısımlı alana SQL kodlarını yerleştirerek vt ye kaydedebilirsiniz.
 
mustafayilmaz28' Alıntı:
hocam
$vize = $_POST["vize"];
bu şekilde olmuyor bunu burdan alabilsem sanırım diğer taraflara da gelebileceğim ama henüz burayı aşamadım :cry:

hocam html sayfaya

<input type="text" name="isim[0]" id="isim[0]" />
<input type="text" name="isim[1]" id="isim[1]" />
<input type="text" name="isim[2]" id="isim[2]" />

php sayfaya

<?php

$b = $_POST["isim"];
foreach ($b as $eleman)
{
echo $eleman."<br>";
}

?>


şeklinde yazınca sorunsuz çalışıyor. ben textlerde denedim ama vt ile de sorunsuz çalışır.
 
<?php
include("ayar.php");
$ogrenci_no=$_POST['ono'];
$vize1=$_POST['vize1'];
$vize2=$_POST['vize2'];
$finall=$_POST['finall'];

$sorgu="SELECT * FROM tbl_deneme_odev";
$sonuc=mysql_query($sorgu);
$kayit_say=mysql_num_rows($sonuc);
for($i=0;$i<=$kayit_say;$i++){
$kayit=mysql_fetch_array($sonuc);
$ono=$kayit["ogrenci_no"];

$sorgu1="update deneme_odev set vize1=$vize1[$i],$vize2=$vize2[$i],$finall=$finall[$i] where ogrenci_no=$ogrenci_no[$i]";
$sonuc=mysql_query($sorgu1);

}
?>
hocam belirttiğiniz şekilde yazdım ama çalışmıyor $ogrenci_no=$_POST['ono '] ve diğerlerinde hata veriyor.
 
PHP için yaziyorum,
Anladığım kadari ile form sayfasında kayitsayisi kadar textbox var.. db den kaçtane geldiyse..
butona basildiğinda bu textleri POST ile tek tek yazmaniz lazim yada bir diziye atmaniz lazim. diziye atan kod ;

for ($i = 1; $i <= $texboxsay; $i++)
{
$textseri[$i] = $_POST['textbox'.$i.''];
}
$texboxsay; değişkeni onceki sayfada oluşturulan textbox sayısını tutuyor, onuda hidden ile dongunun ustunde altdirtirsaniz..
1000 tane textinizde olsa yukaridaki dongu ile bu textlerden gelen verileri diziye atabilirsiniz..
nedersiniz ?
 
Hocam bir örnek yaptım textlerle. Örneği ekte gönderiyorum. Kayıtları gösterdiğiniz satırdaki textboxlara ben 0 dan başlayarak numara verdim. Anlamadığınız yer olursa yine yardımcı olmaya çalışayım. belki daha basit bir yöntem vardır ama aklıma gelen bu ve çalışması gerekiyor.
 

Ekli dosyalar

İlgilenen Tüm Arkadaşlarıma Çok Teşekkürler..
Sonunda İstediğimi yaptım.(yaptık)..
Kodları paylaşıyorum yardımı olması açısından..
index.php
<form name="form1" method="post" action="kaydet.php">
<table width="287" border="1">
<?php include("ayar.php");
$sorgum=mysql_query("SELECT * FROM tbl_deneme_odev");
$i=0;
while($sorgu=mysql_fetch_array($sorgum))
{
?>
</td>
<tr>
<td width="17"><?php echo $sorgu['ogrenci_adi'];?></td>
<td colspan="2"><label>
<input name="vize1[<?php echo $i;?>]"type="text" id="vize1<?php echo $i;?>" size="5">
|
<input name="vize2[<?php echo $i;?>]" type="text" id="vize2<?php echo $i;?>" size="5">
|
<input name="finall[<?php echo $i;?>]" type="text" id="finall<?php echo $i;?>" size="5">
</label></td>
</tr>
<?php $i++;} ?> <tr>
<td height="28">&nbsp;</td>
<td width="107">&nbsp;</td>
<td width="54"> <input type="submit" name="kaydet" id="kaydet" value="Kaydet">
</td>
</tr>
</table>
</form>
kaydet.php
<?php
include("ayar.php");
$vize1=$_POST["vize1"];
$vize2=$_POST["vize2"];
$finall=$_POST["finall"];
$i=0;
$sorgu=("SELECT * FROM tbl_deneme_odev ");
$s=mysql_query($sorgu);
while($sorguu=mysql_fetch_array($s))
{ $ono=$sorguu["ogrenci_no"];
$sorgu1="update tbl_deneme_odev set vize1=$vize1[$i],vize2=$vize2[$i],final=$finall[$i] where ogrenci_no=$ono"; $sonuc=mysql_query($sorgu1);
$i++; }
?>
 
BBNET
Geri
Üst