1

** うまくいく方法を見つけました - このすべてのテキストの下に貼り付けます **

Ajax を使用して、ボタンを使用して PHP から変数を含む非表示の値を送信したいと考えています。

定義すれば、問題なく値を送信できます。

    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script>
    $(document).ready(function(){
    $("button").click(function(){
    $.post("results.php",
    {
    id:"1000"
    },
    function(data,status){
    alert("Data: " + data + "\nStatus: " + status);
    });
    });
    });
    </script>

次に、ページ results.php で $_POST['id'] 変数を処理できます。

しかし、Ajax に非表示の値を HTML フォーム ボタンで送信するように指示するにはどうすればよいでしょうか。私の HTML は PHP の print_r 命令に含まれており、次のようになっています。

    print("<form id='form' method='post' action=''>
    <input type='hidden' name='id' value=$strTweet2>
    <input type='submit' value='RT'></form>");

助けてくれてありがとう。私は他の人々の問題を読んでいて、定義した場合に値を送信することを学びましたが、ボタンから値を送信する方法がわかりません。

** だから私はこれを動作させましたが、HTML でのみ、foreach に適用すると配列の最初の値しか得られませんが、別の質問をするでしょう。このスクリプトは、フォーム ボタンから 1 つの非表示の値を送信します **

    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script>
    function submitForm() {
    $.ajax({type:'POST', url: 'results.php', data:$('#ContactForm').serialize()});
    return false;
    }
    </script>

HTML

    <form id='ContactForm' onsubmit='return submitForm();'>
    <input type='hidden' name='id' value='1000'>
    <input type='submit' value='Post it!'>
4

1 に答える 1

0

まず、この関数はデバッグ用であるため、print_r() を使用しないでください。代わりに print() を使用してください。

jQuery では、次のようにフィールド名で隠しフィールド値にアクセスできます。

$('input[name=id]').val()

しかし、あなたはそれにIDを与えてこれを行うことができます:

$('#id').val()

...そして、文字列を二重引用符で囲みます:

print("<form id='form' method='post' action=''>
<input type='hidden' name='id' value=$strTweet2>
<input type='submit' value='RT'></form>").

編集:非表示フィールドの値を名前で選択し、jQuery .post() を使用して投稿する方法の実際の例

<?php

if (!empty($_POST['id'])){
    print(json_encode(array('id' => $_POST['id'])));
    exit();
}

?>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">

$(document).ready(function(){ 
    $('input[type=submit]').click(function(){ 
        $.post("", { id:$('input[name=id]').val() }, function(data,status){ 
            alert("Data: " + data + "\nStatus: " + status); 
        });
        return false;
    }); 
});

</script>

<form id="form" method="post" action="">
    <input type="hidden" name="id" value="hidden_value">
    <input type="submit" value="RT">
</form>

それを.phpファイルにコピーして、そこにブラウザを向けるだけです:)

于 2013-08-31T21:48:35.610 に答える