2015-02-14 2 views
-1

Я использовал этот код, прежде чем использовать angularjs.

function ajax_post(){ 
     // Create our XMLHttpRequest object 
     var hr = new XMLHttpRequest(); 
     // Create some variables we need to send to our PHP file 
     var url = "myUrl"; 
     var fn = document.getElementById("username").value; 
     var ln = document.getElementById("password").value; 
     var vars = "username="+fn+"&password="+ln; 

     hr.open("POST", url, true); 
     // Set content type header information for sending url encoded variables in the request 
     hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
     // Access the onreadystatechange event for the XMLHttpRequest object 
     hr.onreadystatechange = function() { 
     if(hr.readyState == 4 && hr.status == 200) { 
      var return_data = hr.responseText; 

     if(return_data=="1"){ 
      console.log("this is return data"+return_data); 

     }else{ 

      ons.notification.alert({message: 'Login Failed!'}); 

     } 

     } 
     } 
     // Send the data to PHP now... and wait for response to update the status div 
     hr.send(vars); // Actually execute the request 
    } 

Вот с AngularJS делать одно и то же

$scope.ajaxLogin = function(){ 

    var fn = document.getElementById("username").value; 
    var pw = document.getElementById("password").value; 
    $http({ 
    url: "myURL", 
    method: "POST", 
    data: { username: fn, password: pw }, 
    headers: {'Content-Type': 'application/x-www-form-urlencoded'} 

    }).success(function(data, status, headers, config) { 
    // this callback will be called asynchronously 
    // when the response is available 

    if(status == 200) { 
     var return_data = data; 

    if(return_data == 0){ 
      console.log("test "+data,status); 
      $scope.showAlertSucess(); 
     }else{ 

      $scope.showAlertError(); 
     } 
     } 
    }). 
    error(function(data, status, headers, config) { 
    // called asynchronously if an error occurs 
    // or server returns response with an error status. 
    $scope.showAlertNetwork(); 

    }); 

    }; 

но AngularJS путь его не дает ожидаемый результат, который "1" дает "0". и я прошел через webconsole, что я получил это часть отличается, я думаю, что это отправить данные, такие как JSON data: { username: fn, password: pw },
, но мой другой код его не нравится, что var vars = "username="+fn+"&password="+ln;

, как это исправить, чтобы использовать с angularJS.

для того, чтобы больше понять здесь мой PHP-код.

if ($result=mysqli_query($con,$sql)) 
    { 

    $rowcount=mysqli_num_rows($result); 
    printf($rowcount); 

    mysqli_free_result($result); 
    } 

ответ

1

Если вы используете AngularJs обеспечить переменную в PHP использовать этот код

$array = json_decode(file_get_contents('php://input')); 

В $array ввода ваших переменных.

+0

Спасибо. после нескольких статей и обнаружил, что нет никакого способа изменить это. он всегда отправляет данные вроде json. –

+0

Да. Но современные php-фреймворки поддерживают отправку таких данных, как json :) Итак, это не проблема :) –

+0

btw what is ('php: // input') означает? im отправка данных от моего местного coumpter в интернет-адрес php-файл –