php-functie wordt niet uitgevoerd

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior PHP developer verzekeringenbranche

Organisatie Een van Nederlands grootste verzekeringsmaatschappijen is opzoek naar een goede PHP developer. De organisatie is zo’n 220 man groot en heeft een development team van 15 developers. De IT afdeling speelt een belangrijke rol binnen de organisatie. De klanten regelen steeds meer online en veel is een geautomatiseerd proces. Deze grootschalige verzekering is gespecialiseerd in de auto, reis, aansprakelijkheid, inboedel, zorg, studentenzorg, woonhuis pechhulp, rechtsbijstand en annuleringsverzekeringen. Met bijna 300.000 klanten behoren zij tot de absolute top! Functie Als senior PHP developer bedenk je niet alleen nieuwe functionaliteiten, je gaat ze ook daadwerkelijk ontwikkelen. Je perfectioneert de technologie die

Bekijk vacature »

Jovank vank

jovank vank

23/02/2015 19:13:29
Quote Anchor link
Beste mensen,

Ik heb het volgende script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
$("#preview").click(function(){
    $.ajax({
    url:"../proc/close.php",
    data: {nr: 0},  
    type:"POST",
    success:function(){
      $("#previewa").html('<img class="subafb" src="../pics/afbeelding.png" height="60" width="85">');
       $("#preview").html('');
    }
     }).error(function(){alert("wrong");});
 });
 


Hoewel het pad naar de php-functie m.i. goed is (er wordt geen error gemeld) wordt de php-functie niet uitgevoerd.
Weet iemand wat ik hier mis....?
 
PHP hulp

PHP hulp

19/01/2019 22:58:04
 
- Ariën -
Beheerder

- Ariën -

23/02/2015 19:16:02
Quote Anchor link
En wat gebeurt er als je het PHP-script handmatig oproept op de manier zoals jQuery dat normaal doet?
 
Jovank vank

jovank vank

23/02/2015 19:55:40
Quote Anchor link
Hoe doe je dat?
 
Thomas van den Heuvel

Thomas van den Heuvel

23/02/2015 19:58:33
Quote Anchor link
../proc/close.php rechtstreeks aanroepen, of kijken naar de response in de netwerk-tab van je browser (functietoets F12).
 
- Ariën -
Beheerder

- Ariën -

23/02/2015 20:01:18
Quote Anchor link
In de browser kan je deze uitvoeren.

Ook kan je met de FireBug-extentie in Firefox kijken naar wat de uitvoer van het script is.
Kijk dan in Firebug naar het 'Net'-tabblad, zoek je request naar je bestand op, en kijk bij 'Antwoord'.
 
Jovank vank

jovank vank

23/02/2015 22:38:56
Quote Anchor link
Thx! Ik ben er inmiddels bijna uit. De php functie doet precies wat die moet doen, maar om dat zeker te weten wil ik een waarde terugsturen. Ik doe dat door in ajax script toe te voegen var msg en alert msg:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
$("#preview").click(function(){
    $.ajax({
    url:"../proc/close.php",
    data: {nr: 0},  
    type:"POST",
    success:function(){
      $("#previewa").html('<img class="subafb" src="../pics/afbeelding.png" height="60" width="85">');
      $("#preview").html('');
      var msg = $.parseJSON(result.test);
      alert(msg);
    }
     }).error(function(){alert("wrong");});
 });


En aan php toe te voegen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
header('Content-Type: application/json');
echo json_encode(array('test' => 'YES'));


Maar de alert geef de waarde null. Ik krijg hier maar geen vinger achter. Hebben jullie een idee??
 
Thomas van den Heuvel

Thomas van den Heuvel

23/02/2015 23:48:12
Quote Anchor link
Je kunt in je AJAX-call aangeven wat de vorm van je terugkoppeling is (JSON) met de parameter dataType. Je hoeft dan je resultaat ook niet te parsen als JSON.

In je callback functie (success) staat geen parameter "result", als je die toevoegt (success: function(result) { ... }) zou het, in combinatie met het toevoegen van de bovenstaande parameter (dataType: 'json') moeten werken.
Gewijzigd op 23/02/2015 23:49:48 door Thomas van den Heuvel
 
Jovank vank

jovank vank

24/02/2015 09:15:33
Quote Anchor link
Yes, dataType toegevoegd in de aanroep. Dat is het. (De parameter result stond hier weliswaar niet, maar was er 'in het echt' inmiddels wel.)
Dank jullie!
 
CNEPHP -

CNEPHP -

24/02/2015 10:00:24
Quote Anchor link
Ik ben wel benieuwd hoe je code er inmiddels uitziet. Zouden wij 't mogen zien?


Corné
 
Jovank vank

jovank vank

24/02/2015 15:53:09
Quote Anchor link
Ik gebruik dit als de verwijderfunctie binnen een geheel van interactief afbeeldingen selecteren, tonen en verwijderen.

Als je klikt op een afbeelding ("#previewax") wordt onderstaand script geactiveerd:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  $("#previewax").click(function(){
    $.ajax({
      url:"../proc/chgafbarr.php",
      type:"POST",
      data: {afbnr:0},
      dataType: 'json',
      success:function(result){
    if (result.fout == 'fout') {
          alert('Er is iets fout gegaan');
          return;
        }
    $("#previewa").html('<img class="subafb" src="../pics/toestel.png" height="60" width="85">');
    $("#previewax").html('');
      }
    }).error(function(){alert("wrong");});
  });


Dit script activeert onderstaande php functie die de afbeelding met nr 0 unlinked. Als de aanroep niet lukt treedt de .error(function) in werking, anders de .succes.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
include "../incl/config.php";

$afbnr = $_POST['afbnr'];
$afbnaam = $_SESSION['afb'][$afbnr];
$cleanafb = "../thumbs/".$afbnaam;
unlink($cleanafb);
$_SESSION['afb'][$afbnr] = '';

//als er hoe dan ook een fout optreedt dan
//  $data = array('fout' => 'foutcode');
// anders


$result= array('fout' => 'goed');
header('Content-Type: application/json');
echo json_encode($result);
?>


Als er echter binnen de php-functie een fout optreedt geeft de functie dat door in 'result'. Die fout wordt in het script als callback opgevangen, getoond en het script stopt. Als er geen fout optreedt wordt vervolgens iets gedaan met de afbeelding op de pagina.

Hoop dat je hier iets aan hebt en dat ik het begrijpelijk heb uiteengezet. Ik ben geen specialist.....
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.