1

ボタンでページ上で PHP スクリプトを実行し、div タグだけを更新しようとしましたが、成功しませんでした。スクリプトの $ajax 部分を削除すると、ボタンの状態が変わりますが、ajax 部分を再度追加しても何も起こりません。

PHP ファイルからいくつかのコンテンツをロードし、ボタンと div タグの状態を変更する必要があります。問題が見つからないように見えるので、いくつかの助けをいただければ幸いです。

<div id="noah-content">                       
<script>
    $(document).ready(function() {  
        $("#ON'.$id.'").click(function() {
            document.getElementById("ON'.$id.'").disabled = true; 
            document.getElementById("OFF'.$id.'").disabled = false;     

            $.ajax({
                type: "POST",
                url: "some.php",
                data: {
                    param: $(this).attr("src");
                }
            }).done(function( msg ) {
                alert( "Data Saved: " + msg );
            });
        });

        $("#OFF'.$id.'").click(function() {
            document.getElementById("ON'.$id.'").disabled = false; 
            document.getElementById("OFF'.$id.'").disabled = true;  
        });
    }); 
</script>   

<img src="images/about.png" alt="image" id="myimg" />
<input type="submit" class="ON" id = "ON'.$id.'" value=" ON " name="submit"/>
<input type="submit" class="OFF" id = "OFF'.$id.'" value=" OFF " name="submit" disabled="disable"/>
</div>

例

4

2 に答える 2

0

まず、html タグの id と js でそれらを参照する方法が奇妙に見えます (ただし、js または html に文字列としてドロップされた場合でも、おそらく有効です)。html と js で不適切な方法で php 値を参照しようとしているようです。

次に、JavaScript コンソールでエラーが発生していますか? ajax クエリは完了していますか (つまり、アラート メッセージを受け取りましたか)? 「何も起こらない」以上のことを教えてくれるので、JS コンソールを確認してください。

また

私は通常、done メソッドではなく、ajax の success オプションを使用します。個人的な選択。

の後に構文エラーもあります$(this).attr("src");。通常、セミコロンはコード行の終わりを示し、データの配列/オブジェクト宣言の要素の後に配置します。

 $.ajax({
                type: "POST",
                url: "some.php",
                data: {
                    param: $(this).attr("src")  //Removed the semicolon that was here
                },
                success: function(data){alert(msg)}
            });
于 2013-10-07T16:56:01.013 に答える
0

あなたのphpを評価することから始めましょう:

php を実行するには、php タグを開く必要があります。

 $("#ON<?php echo $id ?>")...

IDを表示したい場所ならどこでも置き換えてください。デバッグするには、ブラウザーでページ ソースを開き、生成されているものを確認します。

例:

<input type="submit" class="ON" id="ON<?php echo $id ?>" value="ON" name="submit"/>
于 2013-10-07T16:56:14.403 に答える