webForumDet fria alternativet
Logga in / Bli medlem

Php ajax form

PHP

3 svar · 1 198 visningar · startad av apaaa

Medlem sedan nov. 200559 inlägg
Frågan#1

Hej! Visste inte riktigt var jag skulle lägga den här tråden så jag la den här.

Jag vill skicka information i en form med ajax.
Sidan inkluderar väldigt mycket ajax, så jag kan verkligen inte ladda om den på nytt.

Det måste finnas något sätt att skicka information i formuläret utan att ha en action-knapp? Det jag ska göra är att lagra ca 10 fält i en databas.

Koden nedanför inkluderas i en annan sida med hjälp utav ajax.

<?php
$con = mysql_connect('localhost', 'root', '');
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("cdb", $con);
$sql="SELECT * FROM ck";
$result = mysql_query($sql) or mysql_error($result);
?>
<div id="popad" style="position: absolute; left: 25%; top: 5%; z-index 5; height: 771px; width: 630px;">
<table width="630" border="0" cellspacing="0" cellpadding="0" style="background-image:url(bilder/addnew/center.png); background-repeat:no-repeat;">
  <tr>
    <td width="48" height="50">&nbsp;</td>
    <td width="530">&nbsp;</td>
    <td width="38">&nbsp;</td>
  </tr>
  <tr>
    <td height="697">&nbsp;</td>
    <td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td height="80" valign="middle"><img src="bilder/addnew/text/addnew.png" width="250" height="80"></td>
      </tr>
      <tr>
        <td height="477" valign="top"><table width="500" height="98" border="0" cellpadding="0" cellspacing="0">
          <tr>
            <td><?php
          if(!isset($_REQUEST['post'])) {
		  ?><br>
              <form id="form1" name="form1" method="post" onclick="doTheThing('admin.php?post=yes')">
                <table width="500" border="0" cellpadding="0" cellspacing="0" class="boxes">
                  <tr>
                    <td align="right">Artikelnummer Nr.1:</td>
                    <td align="left"><input type="text" name="artnr1" id="artnr1" /></td>
                  </tr>
                  <tr>
                    <td align="right">Artikelnummer Nr.2:</td>
                    <td align="left"><input type="text" name="artnr2" id="artnr2" /></td>
                  </tr>
                  <tr>
                    <td align="right">Artikelnummer Nr.3:</td>
                    <td align="left"><input type="text" name="artnr3" id="artnr3" /></td>
                  </tr>
                  <tr>
                    <td align="right">Produktnamn:</td>
                    <td align="left"><input type="text" name="produktnamn" id="produktnamn" /></td>
                  </tr>
                  <tr>
                    <td align="right">Antal i lager:</td>
                    <td align="left"><input name="ail" type="text" id="ail" value="0" /></td>
                  </tr>
                  <tr>
                    <td align="right">Fack Nr:</td>
                    <td align="left"><input name="fack" type="text" id="fack" value="0" /></td>
                  </tr>
                  <tr>
                    <td align="right">Beställ om under:</td>
                    <td align="left"><select name="bom" id="bom">
                      <?php
$i = 0;
while ($i < 200){ 
echo '<option value="' . $i . '">' . $i . '</option>';
$i++;
}
?>
                    </select></td>
                  </tr>
                  <tr>
                    <td align="right">Kategori:</td>
                    <td align="left"><select name="kategori" id="kategori">
                      <?php
$i = 0;
while ($row = mysql_fetch_array($result)){ 
 echo '<option value="' . $row["ID"] . '">' . $row["kg"] . '</option>';
}
?>
                    </select></td>
                  </tr>
                  <tr>
                    <td align="right">Dimension</td>
                    <td align="left"><select name="dn" id="dn">
                      <option value="8">DN8</option>
                      <option value="10">DN10</option>
                      <option value="15">DN15</option>
                      <option value="20">DN20</option>
                      <option value="25">DN25</option>
                      <option value="32">DN32</option>
                      <option value="40">DN40</option>
                      <option value="50">DN50</option>
                      <option value="65">DN65</option>
                      <option value="80">DN80</option>
                      <option value="100">DN100</option>
                      <option value="125">DN125</option>
                      <option value="150">DN150</option>
                      <option value="200">DN200</option>
                      <option value="250">DN250</option>
                      <option value="300">DN300</option>
                    </select>
                      | Egen
                      <input type="text" name="egen" id="egen" /></td>
                  </tr>
                  <tr>
                    <td align="right" valign="top">Kommentar</td>
                    <td align="left"><textarea name="kommentar" id="kommentar" cols="30" rows="5"></textarea></td>
                  </tr>
                  <tr>
                    <td align="right">&nbsp;</td>
                    <td align="right"><input type="submit" name="yeah" id="yeah" value="Submit" /></td>
                  </tr>
                </table>
              </form>
              <?php
			}
			else {
$artnr1 = $_REQUEST["artnr1"];
$artnr2 = $_REQUEST["artnr2"];
$artnr3 = $_REQUEST["artnr3"];
$produktnamn = $_REQUEST["produktnamn"];
$ail = $_REQUEST["ail"];
$bom = $_REQUEST["bom"];
$kategori = $_REQUEST["kategori"];
$fack = $_REQUEST["fack"];
$kommentar = $_REQUEST["kommentar"];

	if (!empty($_REQUEST["egen"]))
		$dn = $_REQUEST["egen"];
	else
		$dn = $_REQUEST["dn"];

/* Kontroll så formulären är korrekt ifyllda */
		$errors = array(); 
		if (!preg_match('/^([0-9]+)$/', $artnr1)) {
			$errors[] = "- artilkelnummret (Artikel Nr. 1) får endast innehålla siffror. " . $artnr1 . "";    
		}
		if (!empty($artnr2)) {
			if (!preg_match('/^([0-9]+)$/', $artnr2)) {
				$errors[] = "- artilkelnummret (Artikel Nr. 2) får endast innehållasiffror. " . $artnr2 . "";    
			}
		}
		if (!empty($artnr3)) {
			if (!preg_match('/^([0-9]+)$/', $artnr3)) {
				$errors[] = "- artilkelnummret (Artikel Nr. 3) får endast innehålla siffror. " . $artnr3 . "";  
			}
		}
		if (empty($produktnamn)) 
			$errors[] = "- du måste fylla i ett produktnamn";

		if (!preg_match('/^([0-9]+)$/', $ail)) {
			$errors[] = "- (Antal i lager) får endast innehålla siffror. " . $artnr1 . "";    
		}
		if (empty($fack)) 
			$errors[] = "- du måste fylla i ett fack";

			if (count($errors)>0){
			echo "<div align='left'>";
			echo "<h4>Följande information måste anges innan du kan skicka formuläret:</h4><br />"; 
			foreach($errors as $fel) 
				echo $fel . "<br>";
			echo "<br />Ange den information som saknas och skicka formuläret igen. Tack! <br />"; 
			echo "</div>";
			echo "<img src=\"bilder/addnew/dialog-no.png\" width=\"256\" height=\"256\" /><br>";
			echo "<a href='javascript:history.go(-1)'>&laquo; klicka här för att komma tillbaka till formuläret</a>"; 
			} 

else {
$query = "INSERT INTO ctb (artnr1, artnr2, artnr3, produktnamn, ail, ailt, fack, bom, kategori, dn, kommentar) VALUES ($artnr1, $artnr2, $artnr3, '$produktnamn', $ail, $ail, '$fack', $bom, $kategori, '$dn', '$kommentar')";
$insert = mysql_query($query) or die (mysql_error());
echo "<h2>Produkten " . $_REQUEST['produktnamn'] . " ligger nu i databasen</h2><br><img src=\"bilder/addnew/dialog-ok.png\" width=\"256\" height=\"256\" /><br>";
echo "<a href='javascript:history.go(-1)'>&laquo; klicka här för att komma tillbaka till formuläret</a>"; 
}
}

?></td>
          </table></td>
      </tr>
      <tr>
        <td height="140" align="right"><a href="javascript:closeAd()"><img  class="img" onMouseOut="this.className='img'" onMouseOver="this.className='imgover'" src="bilder/addnew/text/close.png" width="183" height="140"></a></td>
      </tr>
    </table></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td height="24">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
</div>
Medlem sedan nov. 200559 inlägg
#2

I en ensam input kan man ju skicka informationen på följande vis <input type="radio" name="hej" value="0" onclick="skicka(this.value)" />

Men om man vill skicka med allt som finns i hela formen då?

Medlem sedan nov. 200559 inlägg
#3

Förövrigt så har den inte så mycket med php att göra, kanske kunde någon snäll moderator flytta över tråden till javascript istället? då det endast handlar om skicka över information till en sida sedan retunera något igen.

Medlem sedan nov. 200559 inlägg
264 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)