2016-05-25 3 views
0

я пытаюсь размещать переменную в контроллер PHP с AJAX: источникКак разместить переменную в контроллер (PHP + AJAX + MVC)

$(".inp_pr").keypress(function(f) { 
if (f.which == 13) { 
dataString = 'qwe'; 
$.ajax({ 
type: "POST", 
url: "/prwrk/", 
data: 'dataString=' + dataString, 
success: function(data) { 
alert('<?php echo($data)?>'); 
} 
}); 
event.preventDefault(); 
} 
}); 

Контроллер: посты

function action_index() 
{ 
$data=$_POST['dataString']; 
$this->view->generate('prwrk_view.php', 'template_view.php',$data); 
} 

Ajax переменная успеха , но у контроллера нет его. Я думаю, что это будет неправильный url, но он не работает с полным URL-адресом для файла контроллера.

источник Маршрутизатор:

class Route 
{ 
static function start() 
{ 

$controller_name = 'Main'; 
$action_name = 'index'; 

$routes = explode('/', $_SERVER['REQUEST_URI']); 

if (!empty($routes[1])) 
{ 
    $controller_name = $routes[1]; 
} 




if (!empty($routes[2])) 
{ 
    $action_name = $routes[2]; 
} 



$model_name = 'Model_'.$controller_name; 
$controller_name = 'Controller_'.$controller_name; 
$action_name = 'action_'.$action_name; 



$model_file = strtolower($model_name).'.php'; 
$model_path = "application/models/".$model_file; 
if(file_exists($model_path)) 
{ 
    include "application/models/".$model_file; 
} 


$controller_file = strtolower($controller_name).'.php'; 
$controller_path = "application/controllers/".$controller_file; 
if(file_exists($controller_path)) 
{ 
    include "application/controllers/".$controller_file; 
} 
else 
{ 

    Route::ErrorPage404(); 
} 


$controller = new $controller_name; 
$action = $action_name; 

if(method_exists($controller, $action)) 
{ 

    $controller->$action(); 
} 
else 
{ 

    Route::ErrorPage404(); 
} 

} 

function ErrorPage404() 
{ 
$host = 'http://'.$_SERVER['HTTP_HOST'].'/'; 
header('HTTP/1.1 404 Not Found'); 
header("Status: 404 Not Found"); 
header('Location:'.$host.'404'); 
} 
} 

Как после переменной мой контроллер PHP правильно?

ответ

0

изменение этого

data:$("#formID").serialize(), 

и это представляет нормальная отправку формы через AJAX

+0

вывешивает, но PHP не возвращают что-то –

+0

изменений '$ данных = $ _ POST ['dataString'] 'к этому' $ data = $ _ POST' –

+0

теперь возвращает «массив» –

0

Попробуйте следующий переменная

$(".inp_pr").keypress(function(f) { 
if (f.which == 13) { 
dataString = 'qwe'; 
$.ajax({ 
type: "POST", 
url: "/prwrk/", 
data: {dataString:dataString}, 
success: function(data) { 
$('body').append(data);//change the body to your dom element 
} 
}); 
} 
}); 
+0

Это просто освежает мой элемент dom .. нет результата –

+0

Что значит освежать? – madalinivascu

+0

Надеюсь, у вас есть 2 маршрута для php и один для скрипта ajax – madalinivascu

Смежные вопросы