2017-12-15 6 views
2

私のダイナミック変数をすべて保持するために、メインページの中に(urlによって)呼び出される.phpページを置く方法。私の例では、$ variable1pathは、それがajax関数を持つ私のメインページ上で動的に定義されているため、見つかりません。より良く理解ajax-メインページの中に(URLで)呼び出された.phpを入れてください。

<script> 
    $(document).on("click", "#div", function(e){ 
      e.preventDefault(); 
      var textdata = $('#demo').val(); 
      mydata= 'testdata='+textdata; 
      $.ajax({ 
       type:'POST', 
       data:mydata, 
       url:'external.php', 
       success:function(data) {     
        if(data){ 
         alert('OK'); 
         $("#demo").html(data); 
        }else{ 
         alert('Not OK'); 
        } 
        } 
      }); 
     }); 
</script> 

と私のexternal.php

<?php 
$data_to_write = $_POST['testdata']; 
$file_path = '$variable1path.txt'; //$variable1path is defined on my main page 
$file_handle = fopen($file_path, 'w'); 
fwrite($file_handle, $data_to_write); 
fclose($file_handle); 
$myfile = fopen('$variable1path.txt', 'r'); //$variable1path is defined on my main page 
while(!feof($myfile)) { 
      echo fgets($myfile); 
    } 
fclose($myfile); 
?> 
+3

'$のvariablepath'は、呼び出しページで定義されている場合、あなたはAJAXリクエスト –

+0

OK、私はその方法を掘るだろうに含めるデータで送信します。チップのおかげで=) – Odjone

+0

ちょっとロリー、あなたの方法と私のコードでは成功しません...他のアイデアを持っている場合は共有してください;)。 thx – Odjone

答えて

2

ため

私のスクリプト$variable1pathは、呼び出しページで定義されている場合、あなたはAJAXリクエストに含めるデータでそれを送信します。

$(document).on("click", "#div", function(e) { 
    e.preventDefault(); 
    $.ajax({ 
    type: 'POST', 
    data: { 
     testdata: $('#demo').val(), 
     variable1path: '<? echo $variable1path ?>' 
    }, 
    url: 'external.php', 
    success: function(data) { 
     if (data) { 
     console.log('OK'); 
     $("#demo").html(data); 
     } else { 
     console.log('Not OK'); 
     } 
    } 
    }); 
}); 

PHPでは、値をから取得できます:

<?php 
    $data_to_write = $_POST['testdata']; 
    $variable1path = $_POST['variable1path']; 

    // your php logic here... 
?> 
+0

'variable1path:<? echo "'$ variable1path'"?> 'より良い? – Nope

+0

私には、JSの一組の引用符はきれいに見えますが、うまくいくかどうかです。 –

+0

それがうまくいくならあなたは正しいのです。 – Nope