使用php通过angular传递参数,在SQL中传递给Where

时间:2018-04-17 19:28:16

标签: php angular oracle

如果你传递固定的id,而不是每个变量,它就可以工作。如果你离开变量,结果是空白的。代码工作得很好,可能是PHP内的变量没有加载,我不知道它是否有更好的运行方式。

<tr ng-repeat="user in users track by $index">
   <td>{{user.NNUMERO}}</td>
   <td>
      {{user.OBJETO}} 
      <br>
      <div class="panel-group">
         <div class="panel panel-default">
            <div class="panel-heading">
               <h4 class="panel-title">
                  <a data-toggle="collapse" href="#{{user.NNUMERO}}">Arquivos</a>
               </h4>
            </div>
            <div id="{{user.NNUMERO}}" class="panel-collapse collapse">
               <div class="panel-body">
                  <ul>
                     <?php
                        //ID
                        $CDLICITACAO = "{{ user.CDLICITACAO }}";

                        $conn = oci_connect('SYSTEM', '123', '127.0.0.1/xe');
                        if (!$conn) {
                            $e = oci_error();
                            trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
                        }

                        $query = 'SELECT * FROM SDNVW_ARQLICITACAO_TRANSP WHERE CDLICITACAO = :id';
                        $stid = oci_parse($conn, $query);
                        oci_bind_by_name($stid, ":id", $CDLICITACAO);
                        oci_execute($stid);
                        while (($row = oci_fetch_array($stid, OCI_ASSOC)) != false) {
                            echo $row['IDANEXO'] ."<br>\n";
                        }

                        oci_free_statement($stid);
                        oci_close($conn);

                        ?>
                  </ul>
               </div>
            </div>
         </div>
      </div>
   </td>
   <td> {{user.DTABERTURA | date:'d m, yyyy'  }}</td>
   <td>{{user.DESCSTATUS}}</td>
   <td>{{user.DTSTATUS}}</td>
</tr>

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题。 您将发布到将在post变量中处理值的页面。但你需要从输入中提取它......

    $postdata = file_get_contents("php://input");
    $data = json_decode($postdata);

我发现处理传入值的最简单方法是在Angular中使Table和Post对象中的Operation值过去..

login(login: Login): Observable<Login> {

  const httpOptions = { headers: new HttpHeaders({ 'Content-Type':  'application/json'})};

  const newObj = {...login, T: 'login', R: 'login'};

  const finalstring = JSON.stringify(newObj);

  return this.http.post<User>(this.loginUrl, finalstring, httpOptions)

 .pipe(
      catchError(this.handleError)
    );

但如果有人有更好的方法,我总是想学点东西