Jump to content
php.lv forumi

Javacript + PHP


kasisppr

Recommended Posts

Man ir tāda lieta. Esmu izveidojis formu, kura var būt tukša, bet dažreiz arī ir aipildīta, ja ir attiecīgs ieraksts. Tādējādi nošau 2 zaķus ar vienu šāvienu -pievienoju jaunu ierakstu un pamainu esošo.

Problēma ir tur, ka vēlos pirms ieraksta veikšanas pārjautāt ar confirm box. Kad nospiežot OK būtu jāizpildās PHP f-jai, kas veic ierakstu. konstatēju, ka kaut kas nestrādā kā nākas.

Tāpēc radās jautājums, vai Javascript-ā var izmantot PHP definētu funkciju?

Piemēram:

<form name="rez" method="post" action="">
<input type="hidden" name="date" value="<? echo $date; ?>">
<input type="text" name="Nosaukums" size="50" value="<? echo $Nosaukums; ?>">
<input type="submit" name="Submit" value="Saglabāt" onclick="checkSubmit()">

<script language="JavaScript">
<!--
function checkSubmit()
var x = confirm("Saglabāt datus?")
if (x == true)
{
pievienot()
}
else
{
history.back()
}
//-->
</script>

<?
function pievienot()
{
$date = $_POST["date"];
$Nosaukums = $_POST["Nosaukums"];
//.......  ierakstu datubāzē, pārbaudot, vai nav tukši ieraksti
}

 

 

Kur mans domu gājiens ir nepareizs? Kā man labāk rīkoties? <_<

Link to comment
Share on other sites

:( Sūdīgi.

Gribēju visas funkcijas vienā failā salikt, kuru pašā sākumā ar include_once() ielādēju un tādējādi apstrādāju datus. Nāksies taisīt speciālu failu, kas veic šo funkciju.

Negribas, tādu stilu piekopt. <_<

Edited by kasisppr
Link to comment
Share on other sites

tev ir <form>

<input type="submit">

</form>

 

pie submiteeshanas php apsraadaa forumas datus

tu gribi pajautaat - vai submitot vai nee:

 

<form onsubmit="return confirm('turpinaat')">

<input type="submit">

</form>

 

pie submit pogas nospieshanas tiks izpildiits events "onsubmit", kursh brauzerim atgriezh veertiibu: false - nesubmitot, true - submitot lapu

JS funkcija pie OK spieshanas atgriezh true, cancel - false

kontrukcija onsubmit="return confirm('turpinaat')" atgriezh confirm rezultaatu kaa onsubmit eventa rezultaatu.

 

vai izmanto ko liidziigu body onbeforeunload eventaa - nostraadaa preciizaak

 

Laikam tas, ko vajadzeeja?

Link to comment
Share on other sites

dari taa:

 

<?php

<form name="rez" method="post" action="php_skripts_kas_ieglabaa_datus_db.php" onSubmit="return confirm('turpināt?');">

<input type="hidden" name="date" value="<? echo $date; ?>">

<input type="text" name="Nosaukums" size="50" value="<? echo $Nosaukums; ?>">

<input type="submit" name="Submit" value="Saglabāt" onclick="checkSubmit()">

</form>

?>

 

php_skripts_kas_ieglabaa_datus_db.php failaa veic savu pievienoshanu un visas citas nepiecieshamaas darbiibas.

 

<?php

//shis ir php_skripts_kas_ieglabaa_datus_db.php fails

pievienot()

?>

Link to comment
Share on other sites

pnp, Aleksejs, Klez: pirms atbildat, izlasiet jautājumu un trīsreiz pārjautājiet sev spogulī skatoties vai saprotat ko runājat.

 

Pareizi atbildēja tikai Venom. Visus pārējos var nelasīt.

 

Jautātāj: izklausās, ka tu gribi nošaut nevis 2 zaķus, bet 22 lāčus uzreiz, respektīvi, uzdod jautājumu par vienu tēmu. Jautājuma uzdošana "Vai vēlies saglabāt informāciju?" un jauna ieraksta pievienošanas apvienošana ar veca ieraksta labošanu ir divas dažādas operas.

 

Ja vēlies formu izmantot diviem nolūkiem, tad ar php ģenerē lauciņu <input type="hidden" name="tips" value="jauns" /> vai <input type="hidden" name="tips" value="vecs" />, kas norādīs vai tiek veidots jauns ieraksts datubāzē vai labots vecais. ja tiek labots vecais, tad ievieto vecā vērtības attiecīgajos lauciņos definējot value="" iekš šitādiem: input type="text" name="mainiga_nosaukums" value="<?php echo $mainiga_vertiba; ?>" ...

 

Jautājumu uzdod tā kā aprakstīja Venom.

 

Formas apstrādes skriptā skaties kāds ir $_REQUEST['tips'] mainīgais. Ja tas ir "jauns", tad tev jāpievieno ieraksts, ja "vecs", tad jālabo. Informāciju par to, kuru ierakstu labosi, nodod ar vēl vienu <input type="hidden" lauciņu, kuru nosauc par id vai kaut ko tādu. Tad veic pieprasījumu aptuveni šādu: UPDATE tabula SET .... WHERE id='{$_REQUEST['id']}' ...

 

Atbildētājiem: Stulbi ir nepalīdzēt, bet vēl stulbāk nepareizi palīdzēt. Te ar php funkciju definēšanas kārtību nav nekāda sakara un iekš PHP funkcijas var definēt i pirms i pēc lietošanas (viena faila ietvaros). Vienīgā taisnība bija tāda, ka PHP un Javascript nekādi nav sasaistāmi.

Edited by jb4
Link to comment
Share on other sites

Apskatījos sapratu. :P

____________________

Kļūdīties ir cilvēcīgi...

 

Nekļūdās vienīgi jb4.

Visgudrākais no gudrākajiem ar visgaišāko no gaišajām galvām.

Ak, svētī jel mani, un dod jel man kaut dzirksteli no tā apgarotības ugunskura, kas Tevī kvēl. :D

Edited by Aleksejs
Link to comment
Share on other sites

Paldies par atsaucību!

Izmēģināšu Venom variantu, nezināju, ka ir arī onSubmit. Biju pat vēl vienu citu variantu atradis, kurš likās ir galīgi :blink: , bet strādājošs.

 

jb4: Vispār ir jau man tāds "id" kā hidden un pēc viņa es arī biju iecerējis nofiltrēt vai ir jauns ieraksts, vai tiek pārrakstīts vecais.

 

Ielikšu savu gala risinājumu, kurš strādā.

Link to comment
Share on other sites

Izveidoju savu variantu pēc šādas shēmas

Koda gabals iekš paste.php.lv

 

Bet ir viena problēma. Viss izpildās korekti, bet lai redzētu notikušās izmaiņas formā jāspiež refresh

 

<_<

 

Precizējums!!! Izrādās nestrādā uz IE 5.versijas, bet ar 6. nav problēmu. :)

Edited by kasisppr
Link to comment
Share on other sites

×
×
  • Create New...