Einfache Ajax/Codeigniter Anfrage
Ich habe einige Probleme mit ajax und codeigniter. Ich habe bereits geschrieben eine andere Frage (link zur Frage) und ich dachte, dass ich es gelöst, aber ich wollte nicht, also bin ich jemanden Fragen einfach schreiben code mit ajax/codeigniter, der Steigerung der Anzahl im inneren div/span klicken.
Ich versuche die letzten paar Tage, um dies zu tun, aber ständig Fehler..Mein CI-Einstellung sind :
base_url : localhost/test/
index:index.php
autoload:url
Standard-Steuerung:willkommen (ich ließ es also nur für diesen test)
Ich würde mehr als glücklich sein, um einfaches Beispiel, um dies zu tun. Ich versuchte auch wieder, aber ohne Glück. Hier ist, was ich versucht dieses mal :
Controller (welcome.php)
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends CI_Controller {
function __construct()
{
parent::__construct();
}
public function index()
{
$this->load->view('welcome_message');
}
function increase(){
$increase = $this->input->post('increase');
echo increase++;
}
}
JS (Ajax)
function increase(){
var number = parseInt($('#number').html()) + 1;
$.ajax({
type: 'POST',
url: 'localhost/test/welcome/increase',
data: { increase:number },
success:function(response){
$('#number').html(response);
}
});
}
Ansicht (HTML/CSS)
<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript"></script>
<script type="text/javascript" src="<?php echo base_url();?>assets/js/jquery_v1.9.1.js"> </script>
<script type="text/javascript" src="<?php echo base_url();?>assets/js/script.js"> </script>
<style type="text/css">
#number {
display: block;
text-align: center;
width: 100px;
height: 30px;
margin: auto auto;
line-height: 30px;
border: 1px solid #999999;
border-radius: 5px;
}
</style>
</head>
<body>
<span id="number" onclick="increase()">0</span>
</body>
</html>
Ich bin mit der neuesten xampp auf windows 7. Fehler, die ich bekomme, wenn ich auf span - POST http://localhost/test/localhost/test/welcome/increase 404 (Not Found)
- Verwenden Sie nicht den "fix" - tag, es sei denn, Sie sprechen über das FIX-Protokoll.
- ok, gut zu wissen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie Einreichen, das CSRF-token von cookies, sonst ist der Antrag ungültig, wenn Sie CSRF-Angriffe aktiviert config.php.
Können Sie diese plugin zum abrufen von cookies in javascript.
Und pass einfach auf, es zu CI.
und
Tasten können unterschiedlich sein und können gefunden werden
in config.php
Ich würde auch vorschlagen, einrichten einer route, die für die Anforderung und
über
-
verwenden
site_url()
von codeigniter}
jedoch hinzufügen
http://
vor localhost sollte funktionierenaber es ist immer besser und wird empfohlen für die Verwendung
site_url()
wenn Sie anrufen, einen controller in der CI..., so dass dies nicht geben Sie Fehler beim, wenn Sie Sie hochladen, um live-server.base_url()
gibt die gleiche Sache wie site_url, ohne index_page oder url_suffix angehängt wird.public function increse(){
increase
alsincrese
im ajax...:) 🙂data: { increse:number },
und Sie nehmen es so$increase = $this->input->post('increase');
sowieso dieses ist nicht so dass Sie 404-Fehler weil ist Seite nicht gefunden " - Fehler.. stellen Sie sicher, dass Ihre url weist den richtigen Weg..In Ihr ajax nicht verwenden externer link für Ihre JS verwenden Sie einfach die interne.
Stellen Sie sicher, dass Ihre $config['base_url'] =
http://localhost/test/
im config.phpZuerst sollten Sie definieren Ihre site base_url in application/config-Datei, dann verwenden Sie diese base_url mit Ihrem ajax-Seite aufrufen, von dem Ihr Anruf geht.
Angenommen, Ihre
base_url
isthttp://localhost/test/
dann ändern Sie erhöhen Ihre Funktion im controller wie diesem
}
versuchen Sie dies :
Wenn Sie mit dieser ajax in einem .php-Datei als sollten Sie so etwas tun, um Ihre url:
ODER, wenn Sie dies tun, in einem .js-Datei, als Sie benötigen, fügen Sie diese Zeile in Ihrem Kopf tag
Und als diese :
Hoffe, dass es das problem behebt. Jedoch ist es immer eine gute Idee, wenn die Entwicklung in der lokalen Umgebung um die base_url in config.php wie diese :