2016-04-23 8 views
0

まず、奇妙なタイトルにごめんなさい!私は、このボタンは、パラメータパラメータを持つjavascript関数を呼び出すPHP生成ボタンでPOSTリクエストを生成

$type //is used to recognize which mysqli table should be adressed
$entryID //is used to recognize which entry in table sould be adressed

とPOSTリクエストを作成するスクリプトを呼び出す必要があり

echo '<input type="button" id="$entryID" name="change_title" value="change title" onclick="sendRequest(sendRequest($type, $entryID));" />'; 

HTMLボタンを作成するPHPスクリプトを持って

: は現在、以下の問題に直面してイム

私はjavascriptを使って投稿要求を作成できないことを知っています。フロントエンドの開発のためです。 私はいくつかの研究を行い、AJAXを見つけました。だから私は決して本当にそれを使用していません。しかし、私は(同じファイル内で)このようなPOSTリクエストを作成しようとしました:

<script> 
    // t = type & i = ID 
    function sendRequest(t, i){ 

     var request = $.ajax({ 
     type: "POST", 
     url: "admin_page.php", 
     data: {"type": t, "id": i}, 
     success: function(){ 
      console.log('request via AJAX'); 
     } 
    }); 

     return request; 
    } 
</script> 

スクリプトは、私はそれが働いているかどうかを確認するには、以下のPHPスクリプトを使用して実行した後:

if(isset($_POST['type'])){ 
    if(isset($_POST['id'])){ 
     printf('Post request sent'); 
    } 
} 

私はAJAXとjavascriptの文書をチェックして何も見つけられていない。このプロセスは可能ですか? 私は何が間違っていますか?

ありがとうございます。

+0

あなたが参照しているAJAXはjQueryに依存しています。ブラウザ(通常はF12)でデベロッパーツールを開き、コードをテストして何が起こっているかを確認しながら、コンソールとネットワークのタブに注目してください。 – Rainner

+0

コンソールには何が表示されますか?エラーはありますか? – chris85

+0

aaaaahコンソールに表示されます Uncaught ReferenceError:$ typeが定義されていません –

答えて

1

これはecho文の一部であることを認識した後、この回答を編集しました。これは動作するはずです:

echo '<input type="button" id="'.$entryID.'" name="change_title" value="change title" onclick="sendRequest('.$type.','.$entryID.'));" />';

をまた、私はPHPを介して生成変数とJS関数を呼び出すことに対して助言します。エレガントではありません。あなたの変数をdata- *属性として置き、JSを使ってこれらの属性を取得してください。

+0

それはPHPのリテラルを作るでしょう、https://3v4l.org/YmtCu。 ''は値ではなく、一重引用符で囲まれています。 – chris85

+0

スクリプトレットはコンテキストに関係なく動作します –

+0

@ chris85そうです。ニースキャッチ –

関連する問題