2016-04-22 5 views
0

私はまだ新しいajax.iで新しいが、ajaxで値を得るのに問題があります。 私は

<a href=somepage.php?qid= echo $row['qid']>link</a> 

を行う場合は$ _GET罰金を行うことができますtable.iの[編集]ボタンと一緒にdatabase.iループそれらからの質問のセットを持っていますが、私が本当にやりたいことにある編集同じページを再読み込みせずに

$('.inline.positive.ui.icon.button.edit').click(function(e) { 
    $.ajax({ 
    url : 'view/addquestion.php', 
    type : 'GET', 
    data : { 
      'qid' : $row['question_id'], 
      }, 
      success : function(data) { 
      alert("Hi, testing"); 
      } 
    }); 
    }); 

これは私のAJAXある[更新]

私は句がdatabase.with

にその具体的な質問を更新する場所のためのquestion_idを取得しようとしました

while ($row = mysqli_fetch_array($question)) { 
    <div class="ui buttons"> 
     <button class="inline positive ui icon button edit" data-qid='<?php $row["question_id"]?>'> 
    <i class="edit icon"></i> 
</button> 
} 

で値を送信

if (isset($_GET["qid"])) 
{ 
    $qid = $_GET["qid"]; 
} 
    else 
{ 
    $qid = 0; 
} 

help.im現在使用している場合

<script src="https://code.jquery.com/jquery-2.2.3.js" integrity="sha256-laXWtGydpwqJ8JA+X9x2miwmaiKhn8tVmOVEigRNtP4=" crossorigin="anonymous"></script> 

事前のおかげで


最新のアップデート:私は、私は今のAjaxとPHPのabitを得ると思います

。 PHPスクリプトがサーバー側で実行されているため、$ _GET ['qid'] = 0が表示される理由は何ですか?アヤックスが今取り組んでいる

$(document).ready(function(){ 
    $(".inline.positive.ui.icon.button.edit").click(function() { 
    var val = $(this).attr("data-qid"); 
    $.ajax ({ 
     url: "view/addquestion.php", 
     data: { val : val }, 
     success: function(data) { 
      alert("Hi, testing" + val); 
     } 
    }); 
    }); 
}); 

私は、IM間違った)AJAX用として

は..私は新しいスクリプトでそれを更新した場合、アラートが正しい値で出てきました。

apokryposとnadir(私は人にタグを付ける方法はわかりません)に感謝してくれてありがとうございます。

+0

このライン ' 'QID' => $行[ 'question_id']、 '。ここでPHPからスクリプトを構築しているのですか、またはjavascriptからPHP変数にアクセスしようとしていますか? – Nadir

+0

javascriptからphp変数にアクセスしようとしています.. –

+0

javascriptからphpにアクセスすることはできません。あなたのPHPコードはあなたのサーバーで展開されていますが、あなたのJavaScriptコードはクライアント(ユーザのWebブラウザ)で実行されます – Nadir

答えて

1

サーバー側とクライアント側のスクリプトの違いに注意してください。 JavaScriptがロードされる前に、すべてのサーバーサイドスクリプトが実行され、終了します。 JavaScriptが同じ場所で実行されていないため、JavaScriptからPHP変数にアクセスすることはできません。 JavaScriptを使用してクライアントサイドに変数を渡す必要があります。

例:

PHPループ

<?php while ($row = mysqli_fetch_array($question)): ?> 
    <div class="ui buttons"> 
     <button class="inline positive ui icon button edit" data-qid='<?= $row["question_id"]?>'> 
     <i class="edit icon"></i> 
     </button> 
<?php endwhile; ?> 

のjQueryのAjax

$('.inline.positive.ui.icon.button.edit[data-qid]').click(function(e) { 
    $.ajax({ 
    url : 'view/addquestion.php', 
    type : 'GET', 
    data : { 
      'qid': $(this).attr("data-qid"), 
      }, 
      success : function(data) { 
      } 
    }); 
    }); 
+0

私はまだ$ _GET ["qid"]で値を取得できませんでした。私は説明することができますか、私はどのように私は価値の値を得ることができますか? –

+0

jQueryの 'data:..'部分に間違った構文があったと思います。 – apokryfos

+0

まだ$ _GETを取得しました['qid'] = 0 –