Beste mensen,

Ik heb het volgende script:

$("#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....?
En wat gebeurt er als je het PHP-script handmatig oproept op de manier zoals jQuery dat normaal doet?
../proc/close.php rechtstreeks aanroepen, of kijken naar de response in de netwerk-tab van je browser (functietoets F12).
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'.
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:


$("#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:

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??
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.
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!
Ik ben wel benieuwd hoe je code er inmiddels uitziet. Zouden wij 't mogen zien?


Corné
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:


  $("#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.


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

Reageren