2012-03-28 7 views
1

Hallo Ich benutze Jquery für Ajax .. Ich folgte Handbüchern und Beispielen auf dem Netz, aber ich kann nicht sehen, was ich falsch mache. Hier ist mein Code:Ajax mit jquery mysteriösen Fehler

function ShowSearchResults(search_value){ 
      var ajShowSearchResults = $.ajax({ 
       type: 'POST', 
      url: '../ajquery.php', 
      data: {opt : 'srch', val: search_value}, 
      dataType: "html" 
     }); 

     ajShowSearchResults.done(function(data){ 
      alert(data); 
     }); 

     ajShowSearchResults.fail(function(jqXHR, textStatus) { 
      alert("Request failed: " + textStatus); 
     }); 
+2

was erwarten Sie, dass es zu tun und was schief läuft? – Alp

+1

Erhalten Sie irgendwelche Konsolenmeldungen? – 472084

Antwort

0

getestet habe ich nur das Skript auf meinem localhost. Ich legte ajquery.php im www Verzeichnis und platziert index.html, die Ihr Skript www/Test weil nach den Ajax-Parameter im Verzeichnis enthält Sie ajquery.php angegeben haben, muss eine Ebene sein oben in der Verzeichnishierarchie.

Der Code in www/ajquery.php:

<?php print_r($_POST); ?> 

Der Code in www/test/index.html:

<script type="text/javascript"> 
    function ShowSearchResults(search_value){ 
      var ajShowSearchResults = $.ajax({ 
       type: 'POST', 
      url: '../ajquery.php', 
      data: {opt : 'srch', val: search_value}, 
      dataType: "html" 
     }); 

     ajShowSearchResults.done(function(data){ 
      alert(data); 
     }); 

     ajShowSearchResults.fail(function(jqXHR, textStatus) { 
      alert("Request failed: " + textStatus); 
     }); 
     return false; // My addition 
    } // This Bracket You missed in the question 

</script> 
<form onsubmit='return ShowSearchResults($("#y").val())'> 
<input type="text" name="y" id="y"/> 
<input type="submit"/> 
</form> 

Dies ist die Ausgabe. Output

Jetzt können Sie sehen, dass alle POST Daten, die Sie ist bei ajquery.php verfügbar gesendet. Das beweist, dass es kein Problem mit Ihrem Skript gibt, außer der letzten Klammer, die Sie irrtümlicherweise ausgelassen haben. Aber trotzdem kann ich riechen, dass es in der folgenden Zeile auf Ihrer Seite ein Problem geben könnte.

  url: '../ajquery.php', 

ajquery.php möglicherweise nicht in das übergeordnete Verzeichnis wohnend. Wenn ajquery.php im selben Verzeichnis ist, können Sie ../ajquery.php durch ajquery.php ersetzen oder das Beste von allem, mit der absoluten URL zu ajquery.php wie http://yourdomain.com/ajquery.php.

Hoffnung, die Ihre Frage löst.

Frieden ...

+0

Vielen Dank !! Das Problem war mit dem Verzeichnis der ajquery.php. Vielen Dank für Ihre Zeit .. – Simon

0

Sie den Erfolg und Fehlfunktionen in der Ajax-Aufruf wie so setzen können:

$.ajax(
{ 
    type:  'POST', 
    url:  '../ajquery.php', 
    data:  {opt : 'srch', val: search_value}, 
    dataType: "html", 
    success: function(data) 
    { 
     alert(data); 
    }, 
    error:  function(jqXHR, textStatus) 
    { 
     alert("Request failed: " + textStatus); 
    } 
}); 

Ich hoffe, das funktioniert, weil ich es nicht testen;)

0

wilde Vermutung:

var ajShowSearchResults = $.ajax({ 
     type: 'POST', 
     url: '../ajquery.php', 
     data: {opt : 'srch', val: search_value}, 
     dataType: "html", 
     success: searchSuccess, 
     failure: searchFailure, 
    }); 

    searchSuccess = function(data) { 
     alert(data); 
    }; 

    searchFailure = function(data) { 
     alert("Request failed: " + data); 
    };