2017-11-24 12 views
1

フォームデータをIonic 3からlocalhostにあるphpファイルに渡したいとします。 以下は私のイオニアボタンのコードです:Ionic 3からPHPファイルにフォームデータを渡すには?

createEntry(name, description) 
{ 
let body : string = "testname=" + name + "&testval=" + description, 
    type  : string = "application/x-www-form-urlencoded; charset=UTF-8", 
    url  : any  = this.baseURI + "manage-data.php", 
    method : 'POST', 
    headers : any  = new Headers({ 'Content-Type': 'application/json' }), 
    options : any  = new RequestOptions({ headers: headers }); 

    alert(url); //Output: http://localhost:1432/ionic-php-sql/manage-data.php 
    alert(body); //Output: name=Test&description=Test 
    alert(options); //[object Object] 
    console.log(options); 

    this.http 
    .post(url, body) 
    .subscribe(
     data => { 
      console.log(data); 
      alert(data); 
      alert('success'); 
       if(data.status === 200) 
       { 
        this.hideForm = true; 
        this.sendNotification(`Congratulations the technology: ${name} was successfully added`); 
       } 
     }, 
     err => { 
      console.log("ERROR!: ", err); 
      alert(err); 
     } 
    ); 
} 

これは私のPHPファイルのコードです:

<?php 
    header('Access-Control-Allow-Origin: *'); 
    header('Access-Control-Allow-Headers: X-Requested-With'); 
    header('Access-Control-Allow-Methods: POST, GET, OPTIONS'); 

    $con = mysqli_connect("localhost","root","","ionic_test"); 

    // Check connection 
    if (mysqli_connect_errno()) 
    { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
     } 
     else 
     { 
     echo "success !"; 
     if($_SERVER['REQUEST_METHOD']=='post') 
     { 
      echo "posting"; 
      $postdata = file_put_contents("php://input"); 
      $request = json_decode($postdata); 
      var_dump($request); 

      $name = $_POST["testname"]; 
      $desc = $_POST["testval"]; 

      $sql = "INSERT INTO ionictest(testname, testval) VALUES ($name,$desc)"; 
      $stmt = mysqli_query($con, $sql); 
     } 
    } 
?> 

コードをチェックし、私は間違いの場合はお知らせください。 IonicからPhpファイルにmysqlデータベースのデータを渡したいと思います。 phpとmysqlデータベース間の接続が正常に確立されましたが、IonicフォームからPHPにデータを渡すことはできませんが、エラーは表示されません。 ありがとうございました。

答えて

1

私は私の質問を解決しました! イオンボタンクリックコード:

submitEntry(name, description) 
{ 
    var link = this.baseURI + "manage-data.php"; 
    var body = JSON.stringify({testname: name, testval: description}); 

    alert("DATA: "+body); 

    this.http.post(link, body) 
    .subscribe(data => { 
     console.log("DATA:", data); 
     this.hideForm = true; 
     this.sendNotification(`Congratulations the technology: ${name} was successfully added`); 
    }, 
     err => { 
     console.log("ERROR!: ", err); 
     alert(err); 
    }); 
} 

PHPファイルのコード:誰もが望んでいる場合は、コードを参照することができ

<?php 
    if(isset($_SERVER['HTTP_ORIGIN'])) 
    { 
     header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}"); 
     header('Access-Control-Allow-Credentials: true'); 
     header('Access-Control-Max-Age: 86400'); // cache for 1 day 
    } 

    //Access-Control headers are received during OPTIONS requests 
    if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') 
    { 
     if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'])) 
      header("Access-Control-Allow-Methods: GET, POST, OPTIONS");   
     if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'])) 
      header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}"); 
     exit(0); 
    } 

    $postdata = file_get_contents("php://input"); 
    if(isset($postdata)) 
    { 
     $request = json_decode($postdata); 
     $name = $request->testname; 
     $desc = $request->testval; 

     if($name != "" && $desc != "") 
     { 
      $con = mysqli_connect("localhost","root","","ionic_test"); 

      // Check connection 
      if (mysqli_connect_errno()) 
      { 
       echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
      } 
      else 
      { 
       echo "Name: " .$name; 
       echo "Desc: " .$desc; 

       $sql = "INSERT INTO ionictest(testname, testval) VALUES ('$name', '$desc')"; 
       $stmt = mysqli_query($con, $sql) or die ("MySQL Error:".mysqli_error($con)); 

       echo "successfully inserted !"; 
      } 
     } 
     else 
     { 
      echo "Empty name and description parameter!"; 
     } 
    } 
    else 
    { 
     echo "Not called properly with name and description parameter!"; 
    } 
?> 

... :)

関連する問題