2017-07-01 7 views
0

このコードを実行するたびに、「VALUE IS EMPTY」というメッセージが表示されます。変数がJqueryからPHP変数$valueに渡されないことを意味します。 PHPに渡す必要があります。助けて!JqueryからPHPに値を送信できません

#popupは、テーブルTRがクリックされたときに表示のdivである。)

HTML + PHPコード:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

<div id="popup"> 

    <?php 
     if (isset($_POST['val']) && !empty($_POST['val'])) 
     { 
     $value = $_POST['val']; 
     echo $value; 
     } 
     else{ 
      echo "VALUE IS EMPTY"; 
      //each time I get this msg.. means it won't take the variable value to PHP 
     } 
    ?> 
</div> 

はJQuery/Javascriptのコード:

$(document).ready(function(){ 
    $('#tableview tbody tr').click(function(){ 

    var a=[]; 
    $(this).find('td').each(function(){ 
    a.push($(this).text()); 

    }); 

      $('#popup').show(); 
      $.ajax({ 
       url:'addfile.php', 
       data:{'val': a[1] }, 
       type:'post', 
       success:function(res){ 
       //Is there an error due to this function? or what? 
       } 

      }); 
}); 
}); 

- >テーブルのコードを挿入する必要はありません..これは私の質問を明確にすることを望む

+0

モデルのポップアップや単純なdivを使用していますか? –

+0

だから 'console.log(a)'、あなたは何を見ますか? –

+0

@MuhammadUsman ..単純divです –

答えて

1

[OK]を、ので、ここで迅速な、基本的なガイドです:

HTMLページ、のは、それはindex.htmlが命名しましょう(PHPスクリプトに異なる!):

// index.html 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

<div id="popup"></div> 
<script> 
$(document).ready(function(){ 
    $('#tableview tbody tr').click(function(){ 

     var a=[]; 
     $(this).find('td').each(function(){ 
      a.push($(this).text()); 
     }); 

     $('#popup').show(); 
     $.ajax({ 
      url:'addfile.php', 
      // HERE's A CRITICAL CHANGE: 
      // val MUST NOT be in quotes. You're creating a plain object here 
      data:{ val: a[1] }, 
      // you can change that from type to method (default is get) - though type is an alias for method, so both should work. 
      method:'post', 
      success:function(res){ 
       // here you have your data back from php, do with that what ever you need. 
       console.log(res); // will show value of a[1] in console 
       // my guess is, you want to show it in #popup 
       $('#popup').html(res); 
      }, 
      error: function(error, status, errorString) { 
       // allways check for possible errors! 
       console.log(error); 
       console.log(errorString); 
      } 
     }); 
    }); 
}); 
</script> 

PHPスクリプト

<?php 
// adfile.php 
if (isset($_POST['val']) && !empty($_POST['val'])) { 
     $value = $_POST['val']; 
     echo $value; 
} else { 
     echo "VALUE IS EMPTY"; 
} 
// don't add a closing tag.... 

最後に: Ajaxがどのように動作するように提案されていて、manualsを読んでください!

+0

ありがとうございました。私はajaxについて読んでいましたが、ajaxコードの 'url'は、変数をテストする場所を指定しています。たとえば、変数を別のPHPページに渡して、変数を処理した後、 $ _POST ['val']の形式で変数を取得してください。 ここでは、私の場合、変数を別のページに渡すことはしません。同じページにあり、jquery変数を私はTRをクリックしたのと同じページに送信されるので、ajaxコードから 'url'セクションも削除しましたが、うまくいきませんでした –

+0

これをチェックしてください。 imgur.com/ye4Y1Wd.png Screenshot 2:http://i.imgur.com/oj64l5o.png –

+0

もうPHPが関係しないため、変数を同じページ(php var)に戻すことはできません。ページが読み込まれている、それ以上のphp ... phpがserにありますverのみ。私のスニペットと一緒に行けば#popup _after_を塗りつぶします。 – Jeff

関連する問題