Jump to content
php.lv forumi

pazinjojumi


rukits

Recommended Posts

B) lieta taada: esmu kaarteejais iesaaceejs. bet vajadzeetu ieksh to php norealizeet pazinjojumu logus, piemeeram, tad kad veelos izdzeest no db kaadu ierakstu, buutu jaaizmet paz_logs ar jautaajkumu: Vai tieshaam veelies to dariit?.

ceru uz paliidziibu.

Link to comment
Share on other sites

nu to var veidot izmantojot vienkāršu formu, proti, ideja sekojoša:

1) tiek nospiesta poga dzēst ierakstu (vai links whatever);

2) if nosacījums, ka poga nospiesta un tiek izvadīta forma ar divām pogām yes/no

iespējams vajadzīgs kāds hidden lauks vai sesija, kur saglabāt dzēšamo ierakstu (ieraksta numuru);

3) nolasa kura no pogām nospiesta un attiecīgi veic darbības datu bāzē.

Link to comment
Share on other sites

Tas darās ar JavaScript.

Piemērs:

<html>
<head>
<script>
function parbaude(){
return window.confirm("Vai tiešām gribi turpināt un izdzēst?");
}
</script>
</head>
<body>
<form onsubmit="return parbaude()">
...
</form>
</body>
</html>

Link to comment
Share on other sites

2 rukits:

JavaScript izpildās uz TAVA datora/mobilā/whatever, TAVA pārlūkā

php izpildās uz MANA(mana hostera) servera/datora

 

JavaScript TU - SEV vari atslēgt

PHP varu atslēgt tikai ES

 

Un arī ja tev ir tā pārbaude ar JavaScript, es aizeju kaut kur uz (piemērs IE)Tools>Internet Options>Security>Custom Level>Scripting\Active Scripting->Disable un tava pārbaude ļauj man bliezt visu ko kā vien gribu.

 

Ar php es izmantotu šādu variantu:

 

<form onsubmit="return parbaude()" method="post" action="delete.php">

<script>

document.write('<input type="hidden" name="js_enabled" value="yes" />');

</script>

 

<input type="checkbox" name="deletable[]" value="<šeit elementa unikāls id>" />

<input type="checkbox" name="deletable[]" value="<šeit elementa unikāls id>" />

...

</form>

 

delete.php:

 

if (!empty($_POST['js_enabled']))

{

//uzskatām, ka JavaScript bija ieslēgts, jo viņš ir izrakstījis to slēpto lauku

dzēšam

}

else

{

/* uzsākam/atsākam sesiju - mehānismu kas ļauj nodot datus no vienas php lapas uz citu, neizmantojot klienta pārlūku */

if (!session_id())

session_start();

 

$_SESSION['deletable']=array();

$_SESSION['deletable']=$_POST['deletable'];

 

 

//apstrādājam formas (sk. zemāk) atbildes

if (!empty($_POST['yes']) && $_SESSION['delete'])

{

//dzēšam nost, piem no MySQL to var darīt šādi

mysql_query("DELETE FROM tabula WHERE id IN (".join(',',$_SESSION['deletable']).")");

}

if (!empty($_POST['no']))

else

{

//tika atbildēts ar nē, atsviežam lietotāju atpakaļ uz iesākuma lapu (redirect)

header('Location: index.php');

}

?>

<form method="post" action="delete.php">

Vai tiešām dzēst iepriekš izvēlētos elementus?

<input type="submit" name="yes" value="Jā" />

<input type="submit" name="no" value="Nē" />

</form>

<?php

}

 

Resp. ja lietotājam ir bijis JavaSript, netiek vaicāts "vēlreiz", ja nav bijis - ar pašu php noģenerējam papildus formu, kas vēlreiz pavaicā vai to-to dzēst vai nē.

Link to comment
Share on other sites

iet kopa...vel viens variant, bet tas pats kas Aleksejam tikai linka veida

<script language="JavaScript">
function Dzest() {
var message = 'Vai dzēst ierakstu nr. 5?';
if (confirm (message)) {
return true;
}
else {
return false;
}
}
</script>

<a href="?del=5" onclick="return Dzest()">dzēst</a>

Link to comment
Share on other sites

un vēl universālāk (ķipa "a man garāk" ;) ):

 

<script type="text/javascript">

function ud(a)

{

pth=a.href.split('=');

return confirm('Tiešām dzēst ierakstu ar numuru '+pth[pth.length-1]+'?');

}

</script>

 

<a href="?del=5" onclick="return ud(this)">here</a>

 

visiem linkiem jāpievieno tas onclick="return ud(this)" un jānodrošina, ka tas numurs ir pēc pēdejā "=" iekš linka.

 

bet tas tomēr neatceļ situāciju ar javascript atslēgšanu

 

2 rumpels: 3 bet - 1. ja saprati, ka confirm pas atgriež true/false atšķirībā via bija nospiests OK/Cancel, tad priekš kam lieki dublēt? 2. priekš kam liekais mesage variablis? 3. priekš kam liekiem {} apkārt vienoperāciju if darbībām (return ...)

Link to comment
Share on other sites

×
×
  • Create New...