2011-12-04 9 views
0

私は古いCMSと、投票+1または-1のシステムを挿入するモジュールの1つを使用します。 問題はモジュールがPHPで書かれており、呼び出されないということですJS。たぶん私は間違ったことをしているのかもしれないJSをPHPコードに挿入して呼び出します

私はパスを変更しようとした - それは無用です...ダイレクトコールスクリプト「モジュール/フォーラム/ down_vote.php」保護されたサーバー。

print ("<script type=\"text/javascript\" src=\"modules/Forum/jquery.js\"></script> 
<script type=\"text/javascript\"> 
$(function() { 
    $('.vote').click(function() { 

var id = $(this).attr(\"id\"); 
var name = $(this).attr(\"name\"); 
var dataString = 'id='+ id ; 
var parent = $(this); 

if(name=='down') 
{ 
$(this).fadeIn(200).html('<img src=\"modules/Forum/dot.gif\" align=\"absmiddle\">'); 
$.ajax({type: \"POST\", url: \"modules/Forum/down_vote.php\", data: dataString, cache: false, success: function(html) 
    { parent.html(html);} 
}); 
} 
else 
{ 
$(this).fadeIn(200).html('<img src=\"modules/Forum/dot.gif\" align=\"absmiddle\">'); 
$.ajax({type: \"POST\", url: \"modules/Forum/up_vote.php\", data: dataString, cache: false, success: function(html) 
    { parent.html(html); 
    } }); 
} 
return false; 
    }); 
}); 
</script>"); 

投票ボタン:

初期化jQueryと私はPHPで関数必要

echo "<div class=\"box1\"><div class=\"up\"><a href=\"#\" class=\"vote\" title=\"+ 1\" alt=\"+ 1\" id=".$row["id"]." name=\"up\">".$up."</a></div>" 
      ."<div class=\"down\"><a href=\"#\" class=\"vote\" title=\"- 1\" alt=\"- 1\" id=".$row["id"]." name=\"down\">".$down."</a></div></div>\n"; 
+4

くそ。次回はHEREDOCまたは通常のinline-htmlを使用してください! –

+0

これはHTMLではないので、私はPHPでJSを開始しようとしています。したがって、私はそのようなコードを投稿します。たぶんこれは私の間違いを見つけるのに役立つでしょう。 – Astraport

+2

PHPはJavaScript関数を呼び出しません。これは、順番に、クライアント側のJavaScriptを呼ぶかもしれないブラウザに送信され、サーバー側のコードを生成します。実行のさまざまな層を認識していないときは、これを使って自分で作業する必要があります。 – HerrSerker

答えて

2

1.-をあなたは本当にすべてのことは、コードをJS printを必要としないようです。これは、同じように動作します:

<?php 
// php code 
?> 
<script type="text/javascript" src="modules/Forum/jquery.js"></script> 
<script type="text/javascript"> 
    $(function() { 
    // ... 
    }); 
</script> 
<?php 
// php code 
?> 

あなたはこのコードを実行/書き込みするためにいくつかの条件を満たして必要な場合は、このようにそれを行う:どうやらあなたのjqueryのコードは右である

<?php 
// php code 
if ($condition) : // start js code 
?> 
<script type="text/javascript" src="modules/Forum/jquery.js"></script> 
<script type="text/javascript"> 
    $(function() { 
    // ... 
    }); 
</script> 
<?php 
endif; // end js code 
// php code 
?> 

2.-。 CMSがサイトのURLを取得する方法を提供していることを確認してください。 CodeIgniterのか、ワードプレスでsite_url()ような何か。私はあなたのAJAX呼び出しで$ path_to_your_modulesを決定するためにそれを使用することをお勧め。

$.ajax({ 
    type: "POST", 
    url: "<?php echo $path_to_your_modules; ?>/modules/Forum/down_vote.php", 
    data: dataString, 
    cache: false, 
    dataType : "html", // add this to format as html 
    success: function(html){ 
     parent.html(html); 
    } 
}); 
関連する問題