webForumDet fria alternativet

Php ajax form

3 svar · 1 198 visningar · startad av apaaa

apaaaMedlem sedan nov. 200559 inlägg
#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>
apaaaMedlem 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å?

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

apaaaMedlem sedan nov. 200559 inlägg
130 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)