4

Using jquery mobile+phonegap, trying to POST to a Slim application, I have this code:

$( document ).on( "vclick", "#test_form", function() {
            $.ajax({
                type: "POST",
                url: "http://mydomain.com/slim/",
                crossDomain: true,
                beforeSend: function() {
                    $.mobile.loading('show')
                },
                complete: function() {
                    $.mobile.loading('hide')
                },
                data: {namec:$("#namec").val()},
                dataType: 'json',
                success: function(response) {
                    //console.error(JSON.stringify(response));
                    alert(response);
                },
                error: function() {
                    //console.error("error");
                    alert('Not working!');
                }
            });
});

I have tested this with other non Slim PHP pages and everything works fine, I get the ajax error with Slim though.

My Slim app:

<?php
require 'Slim/Slim.php';

\Slim\Slim::registerAutoloader();

$app = new \Slim\Slim();

$app->post('/', function () {
    echo json_encode($_POST("namec"));
});

$app->run();

Just started using Slim, so not sure what I could be doing wrong.

Jorg Ancrath
  • 1,447
  • 10
  • 34
  • 61
  • Use dev tools / firebug to actually inspect the response and see what the problem is. I don't know anything about slim, but this is the best place to start debugging. – BjornJohnson Jun 10 '13 at 00:27
  • this should work too, you have to change the `$_POST("namec")` to `$_POST["namec"]` – Aram Dec 20 '13 at 12:37

2 Answers2

8

Have you tried:

$app->post('/', function() use ($app) {
       // ...
       $req = $app->request();
       echo json_encode($req->post('namec'));
       //...
}

Also this page should help

rscnt
  • 985
  • 9
  • 13
0

As per slim v3 you can access the request object with $request->getParams()

$app->get('/', function (Request $request, Response $response){
   $data = $request->getParams()
   echo json_encode($data['namec']);
}

see documentation here https://www.slimframework.com/docs/v3/objects/request.html#route-object

Ivan of uganda
  • 382
  • 5
  • 15