2015-03-22 3 views
-5

Я должен подать заявку, и я решил использовать PhoneGap, но мой Ajax всегда говорит «ОШИБКА», и я не знаю, почему, потому что вставка работает очень хорошо ...Ajax PhoneGap всегда ошибка

$("#test").click(function() { 
    var name = $("#name").val(); 
    var password = $("#password").val(); 
    alert(name+' '+password); 
    $.ajax({ 
     type: "POST", 
     url: "http://191.165.1.16/PULZ/ajax_action.php", 
     // contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     data : { 
      actionname : 'insert', 
      name:name, 
      password:password 
     }, 
     success: function(data) { 
      alert("work"); 
     }, 
     error: function(data) { 
      alert("There was an error loading the feed"); 
     } 
    }); 
}); 

И мой PHP код

if (isset($_POST["actionname"]) && !empty($_POST['actionname'])){ 
    $actionname = $_POST['actionname']; 

    if($actionname == 'insert'){ 
     $connect = new PDOsql(); 
     $name = $_POST['name']; 
     $password = md5($_POST['password']); 
     $sql="INSERT INTO user(name,password) VALUES(?,?)"; 
     $opt = array($name, $password); 
     $connect->query($sql,$opt); 

     $connect = null; 

     die(
      json_encode(
       array(
        'state'=>'success' 
       ) 
      ) 
     ); 
    } 
} 
+0

Попробуйте удалить "типа:", "URL:", "DATATYPE:", и т. д., просто оставьте значения – davidvelilla

+0

Просто верните json-строку из своего php, чтобы проверить, может ли быть проблема ... если она тогда работает нормально, вы знаете, где искать ... – reyaner

+0

У вас действительно есть класс 'PDOsql'? И ваш метод 'query()' этого класса готовит и выполняет запрос? И проверьте консоль на ответ. – jeroen

ответ

-1

вы не можете использовать «пустой()» с не изменяющимся элементом, вы получите сообщение об ошибке внутреннего сервера «500», всегда.

Note: Prior to PHP 5.5, empty() only supports variables; anything else will result in a parse error. In other words, the following will not work: empty(trim($name)). Instead, use trim($name) == false.

PHP Manual - empty

+0

'$ _POST' - это массив, поэтому в OP-коде он используется правильно, независимо от того, какая версия PHP-версии работает. – marian0

0

Попробуйте

JAVASCRIPT

$("#test").click(function() { 
    var name = $("#name").val(); 
    var password = $("#password").val(); 
    alert(name + ' ' + password); 
    $.ajax({ 
     type: "POST", 
     url: "http://191.165.1.16/PULZ/ajax_action.php", 
     // contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     data: { 
      actionname: 'insert', 
      name: name, 
      password: password 
     }, 
     headers: { 
      'Content-Type': 'application/json' 
     } 
     success: function(data) { 
      alert("work"); 
     }, 
     error: function(data) { 
      alert("There was an error loading the feed"); 
     } 
    }); 
}); 

PHP

if (isset($_POST["actionname"]) && isset($_POST['name']) && isset($_POST['password'])){ 
    $actionname = $_POST['actionname']; 
    $name = $_POST['name']; 
    $password = $_POST['password']; 

    if($actionname == 'insert'){ 
     $connect = new PDOsql(); 
     $name = $_POST['name']; 
     $password = md5($_POST['password']); 
     $sql="INSERT INTO user(name,password) VALUES($name,$password)"; 
     $opt = array($name, $password); 
     $connect->query($sql,$opt); 

     $connect = null; 

     die(
      json_encode(
       array(
        'state'=>'success' 
       ) 
      ) 
     ); 
    } 
} 
Смежные вопросы