-1

ajaxによって呼び出されたphpページからjqueryコードを実行しようとしています。

div.errorのhtmlを変更

コードは次のとおりです(より簡単な方法がある場合は、伝える/投稿するだけです):-no $.load

HTML/jQuery: jquery.js は既にリンクされています

<input type='text' id='test'>
<div id='error' style='display:inline-block;'>CHANGE HERE</div><bR>
<input type='submit' value='run' id='button'>

<script type='text/javascript'>
$('#button').click(function(){
$.ajax({
    url: "test.php",
    type: "POST",
    data: "test="+ test,
    success: function(jqXHR){
    },
    error: function() {
        alert('error');
    }
});
});
</script>

test.php

<script type='text/javascript'>
$('#error').html('working');
</script>
4

3 に答える 3

3

使用testしている変数はどこにも宣言されていないようです。最初にハードコーディングしてみてください。また、{key:value}サーバーに送信するときに値を適切に URL エンコードするため、構文も推奨されます。

data: { test: 'some value' }

変数を使用する場合は、変数を宣言したことを確認してください。

$('#button').click(function() {
    var test = 'foo bar';
    $.ajax({
        url: 'test.php',
        type: 'POST',
        data: { test: test },
        success: function(data) {

        },
        error: function() {
            alert('error');
        }
    });
});

また、php スクリプトで JavaScript を実行する場合は、<script>タグを削除します。

$('#error').html('working');

呼び出しでdataTypeパラメーターを指定しscriptます。$.ajax

dataType: 'script'

もう 1 つの可能性は、test.phpスクリプトに単純に値を返すようにすることです。

working

次に、成功のコールバック内で DOM を更新します。

success: function(data) {
    $('#error').html(data);
},
于 2012-08-07T16:47:52.777 に答える
2

指示したことがないため、内部からのJavaScripttest.phpは実行されません。ロードしたからといって実行するだけではありません。実行するには、DOM内にある必要があります。

これを試して:

$.ajax({
    url: "test.php",
    type: "POST",
    data: "test="+ test,
    success: function(data){
        $(data).filter('script').appendTo('head');
    },
    error: function() {
        alert('error');
    }
});
于 2012-08-07T16:51:59.290 に答える
0

test.php スクリプトは、表示したいものを出力する必要があります。

次のようになります。

echo "<html>";
echo "<div>working</div>";
echo "</html>";

何かを返すように。現在、javascript のみを返しています。

于 2012-08-07T16:50:17.003 に答える