2016-07-11 4 views
2

これは簡単な質問です...ボタンクリックでJQUERY PHPスクリプトを返す

現在、私はPHPスクリプトを含むHTMLページを持っています。 PHPスクリプトが含まれて次のようにユーザーがサインインすると、データは自動的に、ページに返されます。

<section class="content"> 
<?php include("api/qnams_all.php"); ?> 
</section> 

このスクリプトは、IDと呼ばれる#の例1でテーブルを返すクエリが含まれています。

そのIDを使用して、私はそのスクリプトからデータをフォーマットするためにjqueryののDataTableを使用しています:今すぐ

$('#example1').DataTable({ 
{ 
    "dataType": "json", 
    "iDisplayLength": 25, 
    "bDestroy": true, 
    "stateSave": true 
}); 

、私がやりたいものを、ボタンをjqueryの経由でクリックされたかどうかをチェックし、もしだから、別のPHPスクリプトを実行します。

したがって、上記のそのセクションタグに、私はこのような何かをしたい:

<section class="content"> 
<button type="button" id="buttonSearch">Search</button> 
<script type="text/javascript"> 
    if('#buttonSearch').click(function() 
    { 
    // return <?php include("api/differentScript.php"); ?> 
    } 
    else 
    { 
    // return <?php include("api/qnams_all.php"); ?> 
    }); 
</script> 
</section> 

私は構文はJavaScriptで、おそらく間違っていると確信しています。私は何をしようとしているのかの例を見せようとしていました。

これが可能なのかどうかわかりません。もしそうなら、私に教えてください。私は大いに感謝します。

答えて

2

私はajaxのページを使用します。 PHPで要請されたものを聞いてそれを返す。次に、この結果をページ上のHTMLオブジェクトに追加します。

私はこれに似ています。

<?php 

if(isset($_POST['script1'])){ 
    include("api/differentScript.php"); 
    exit; 
} 

if(isset($_POST['script2'])){ 
    include("api/qnams_all.php"); 
    exit; 
} 

?> 

<div id='output'></div> 


<script type="text/javascript"> 

    $("#buttonSearch").on('click', function(){ 
     $.ajax({ 
      type:"POST", 
      url: "/page_location/", 
      data: "script1=true", 
      success: function(result){ 
       $("#output").html(result); 
      } 
     }); 
    }); 

    $("#buttonSearch2").on('click', function(){ 
     $.ajax({ 
      type:"POST", 
      url: "/page_location/", 
      data: "script2=true", 
      success: function(result){ 
       $("#output").html(result); 
      } 
     }); 
    }); 

</script> 

私はあなたが変数にデータを格納した場合、あなたはそれを変更することにより、POSTデータでそれを送ることができ、データテーブルがどのように動作するかわからない:何、

残念ながら
data: {script1: true, post_data_1: var}, 
+0

あなたのコードを使って、どうやってAJAXのPHPスクリプトにjavascript変数を送ることができますか? –

+1

がコードを更新しました。問題は解決しますか? – atoms

+1

確実に正しいトラックに。ちょうどほんのちょうど2つのtweeks、私は良いと思います。しかし、はい、それは私の問題を大部分解決します。どうもありがとうございます。 –

1

あなたはあなたのWebサーバーに何かを送り返さずには動作しません。 PHPはサーバーサイド言語なので、Jqueryを使用しているブラウザーにいると、そのページでPHPを実行することはできません。

あなたが最初の要求と下流の両方のオプションを送信したくないと仮定すると、2つのオプションがあります:あなたは、クリックにリダイレクトすることができます

<script type="text/javascript"> 
if('#buttonSearch').click(function() 
{ 
    window.location.href = "/api/differentScript.php"; 
} 
else 
{ 
    window.location.href = "/api/qnams_all.php"; 
}); 
</script> 

それとも、あなたのURLを見て、あなたが使用していることに注意を

return json_encode($results); 
の 'differentScript.php' 末端場合

<script type="text/javascript"> 
$('#buttonSearch').click(function() 
{ 
    $.ajax({ 
     dataType: 'json', 
     url: "/api/differentScript.php", 
     data: {key: 'value'}, 
     success: function(repsonse) { 
     var responseObject = JSON.parse(response); 
     //Do something with response object on page 
    }, 
    error (message) { 
     //handle errors 
    } 
}); 
</script> 

:API、あなたは、AJAXを使用して非同期呼び出しを行うことができます

と$結果は、

JSON.parse(response) 

はjQueryオブジェクトにあなたのPHPの配列を向けるだろう、PHPオブジェクトまたは配列です。

0

Javascript内にそのようなPHPスクリプトを含めることはできません。あなたは各条件&のためにAjaxコールを作成し、PHPスクリプトを介して必要な作業をしなければなりません。 上記のようにPHPスクリプトを「インクルード」すると、ボタンをクリックしたときではなく、ページが読み込まれたときにPHPスクリプトが直接インクルードされます。プラスこれは正しい方法ではありません。

関連する問題