0

このドロップダウン フォームを使用して、ページ上の間違ったデータ (映画情報) を送信しようとしています。このhtmlコードは、ユーザーが送信をクリックしたときに送信するドロップダウンフォームであり、javascriptはGETデータを別のphpファイルに送信し、そこでデータを処理しますが、フォームデータを置く場所にテキスト:「ありがとう」

問題は次のとおりです。送信をクリックすると機能しません。javascriptが機能していません。

html:

<div id='premijera' class='neispravniPodaci'>Report wrong data
    <div id='neispravnaForma' class='arrow_box' >
            <form name='frm1' action='' onSubmit='neispravniPod()' method='get'>
            <input class='textbox'  type='text' name='forma' placeholder='input for wrong data'>
            <input type='submit' name='sendForm' value='Send'  class='button'>
            </form>
        </div>
</div>

そしてJavaScriptコードは次のとおりです。

function neispravniPod()
{
var xmlhttp;
var forma=document.forms['frm1']['forma].value;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById('neispravnaForma').innerHTML='<t style=\"font-size:15px;font-weight:bold;color:black;\">Hvala!</t>';
    }
  }

xmlhttp.open('GET','glasanje.php?id=".$idfilm."&neispravno='+forma+'&ip=".$_SERVER["REMOTE_ADDR"]."&korisnik=".$userdata['user_id']."',true);
xmlhttp.send();
}
4

2 に答える 2

1

Reneが指摘しているように、これはおそらくjavascript構文エラーであり、実際の送信の前にonSubmit関数が起動するのを妨げています。

jsfiddleでコードを試すことをお勧めします。

xmlhttp.openリクエストにPHPコードが含まれています。そのコードをどのように挿入していますか?jsファイルでそのコードを使用しようとしていて、クライアントがそれを実行することを期待している場合、これは失敗点になる可能性があります(javascriptファイルはサーバー側のコードを解釈しないため、構文エラーを吐き出すだけです)。 。

また、よりクリーンなajaxリクエストの作成に役立つjQueryまたは別のjsライブラリの使用を検討しましたか?

回答付き編集(以下のコメントによる):

ファイルの残りの部分でPHPが何であるかはわかりませんが、これが機能することを確認するためにローカルで使用およびテストしたものです。PHP側でも、変数を出力する方法で、いくつかの構文エラーを修正しました。このコードをindex.phpファイルまたは使用しているものに貼り付けます。

<div id='premijera' class='neispravniPodaci'>Report wrong data
    <div id='neispravnaForma' class='arrow_box'>
        <form name='frm1' action='javascript:neispravniPod();' method='get'>
            <input class='textbox' type='text' name='forma' placeholder='input for wrong data'>
            <input type='submit' name='sendForm' value='Send' class='button'>
        </form>
    </div>
</div>

<script type="text/javascript">
    function neispravniPod() {
        var xmlhttp;
        var forma = document.forms.frm1.forma.value;
        if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else { // code for IE6, IE5
            xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
        }
        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById('neispravnaForma').innerHTML = '<t style=\"font-size:15px;font-weight:bold;color:black;\">Hvala!</t>';
            }
        };

        xmlhttp.open('GET', 'glasanje.php?id=<?php echo $idfilm ?>&neispravno='+forma+'&ip=<?php echo $_SERVER["REMOTE_ADDR"] ?>&korisnik=<?php echo $userdata['user_id'] ?>', true);
        xmlhttp.send();
    }       
</script>
于 2013-03-03T13:51:18.100 に答える
0

私が最初にすることは、javascript をチェックすることです。スクリプトに多くのエラーがあるようです... jsbin.com で自分のスクリプトをチェックしたいです... javascript パネルを開いてそこにスクリプトを貼り付けてください...あなたのスクリプトに 33 個の警告が見つかりました ... クリック: http://jsbin.com/oqiliq/1/edit

于 2013-03-03T13:38:28.333 に答える