0

私が取り組んでいる投票スクリプト用のテーマビルダーを構築しようとしています。プレビューを表示できるように作成しようとしているため、ページをリロードしたくありません。私はAJAXにかなり慣れていないので、バイパスすればすべてうまくいくようです。

問題は、データベースを更新するためにphpファイルを呼び出すときにエラーが発生することです

HTML ファイル: (すべての入力は実際には index.php にありますが、スペースのためにここには含めませんでした)

 <div id="theme" name="theme" class="theme">
      <form class="css_form">
            <table>
               <tr>
                    <td align="left" valign="center"><label>Map Navigation Color</label></td>
                    <td align="left" valign="center"><input type="text" id="map_navigation" name="map_navigation" class="colorwell" value="#ffffff" /></td>
                </tr>    
                <tr>
                    <td align="left" valign="center"><label>Test It</label></td>
                    <td align="left" valign="center"><input type="button" value="preview" onClick="getTheme();"></td>
                </tr>
            </table>
        </form>
 </div>

AJAX ファイル (theme_builder.js)

function getTheme(str)
{
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("theme").innerHTML=xmlhttp.responseText;
    }
  }

    var button_style = document.getElementById('button_style').value;
    var div_grad_1 = document.getElementById('div_grad_1').value;
    var div_grad_2 = document.getElementById('div_grad_2').value;
    var gradient_direction = document.getElementById('gradient_direction').value;
    var map_0 = document.getElementById('map_0').value;
    var map_100 = document.getElementById('map_100').value;
    var map_selected = document.getElementById('map_selected').value;
    var map_outline = document.getElementById('map_outline').value;
    var map_navigation= document.getElementById('map_navigation').value;
    var queryString =
        "button_style=" + button_style +
        "&div_grad_1=" + div_grad_1 +
        "&div_grad_2=" + div_grad_2 +
        "&gradient_direction=" + gradient_direction +
        "&map_0=" + map_0 +
        "&map_100=" + map_100 +
        "&map_selected=" + map_selected +
        "&map_outline=" + map_outline +
        "&map_navigation=" + map_navigation;

    xmlhttp.open("GET", "theme_builder.php?"+queryString, true);
    xmlhttp.send();  
}

そして最後にphpファイル(theme_builder.php

<?php
    include('../../connection.php');

    $button_style = ($_GET['button_style']);
    $div_grad_1 = ($_GET['div_grad_1']);
    $div_grad_2 = ($_GET['div_grad_2']);
    $gradient_direction = ($_GET['gradient_direction']);
    $map_0 = ($_GET['map_0']);
    $map_100 = ($_GET['map_100']);
    $map_selected = ($_GET['map_selected']);
    $map_outline = ($_GET['map_outline']);
    $map_navigation = ($_GET['map_navigation']);
    $id='2';

    $update_settings = "UPDATE vs_vote_settings SET 
                        button_style = ?,
                        div_grad_1 = ?,
                        div_grad_2 = ?,
                        gradient_direction = ?,
                        map_0 = ?,
                        map_100 = ?,
                        map_selected = ?,
                        map_outline = ?,
                        map_navigation = ?
                            WHERE id=?";

    $query_update_settings = $conn->prepare($update_settings);
        if(!$query_update_settings)
            {
                die ("error" .$conn->errorInfo());
            }
    $query_update_settings->execute(array($button_style, $div_grad_1, $div_grad_2, $gradient_direction, $map_0, $map_100, $map_selected, $map_outline, $map_navigation, $id));

$conn = null;
?>

私が得ているエラーは次のとおりです。

Notice: Undefined index: div_grad_2 in C:\Program Files (x86)\EasyPHP-12.0\www\my portable files\status201\applications\201vote\theme_builder.php on line 6

Notice: Undefined index: gradient_direction in C:\Program Files (x86)\EasyPHP-12.0\www\my portable files\status201\applications\201vote\theme_builder.php on line 7

Notice: Undefined index: map_0 in C:\Program Files (x86)\EasyPHP-12.0\www\my portable files\status201\applications\201vote\theme_builder.php on line 8

Notice: Undefined index: map_100 in C:\Program Files (x86)\EasyPHP-12.0\www\my portable files\status201\applications\201vote\theme_builder.php on line 9

Notice: Undefined index: map_selected in C:\Program Files (x86)\EasyPHP-12.0\www\my portable files\status201\applications\201vote\theme_builder.php on line 10

Notice: Undefined index: map_outline in C:\Program Files (x86)\EasyPHP-12.0\www\my portable files\status201\applications\201vote\theme_builder.php on line 11

Notice: Undefined index: map_navigation in C:\Program Files (x86)\EasyPHP-12.0\www\my portable files\status201\applications\201vote\theme_builder.php on line 12

button_style と div_grad_1 はエラーをスローしていませんが、残りはエラーをスローしていることに注意してください。エラーは見つかりませんが、私のajaxファイルにあると思います。Tizag For the Ajax fileのチュートリアルに従い、必要に応じて変更しようとしました...

ここには大量のコードがあることは知っていますが、しばらくの間困惑しています。

ありがとう

4

1 に答える 1

0

theme_builder.php で isset を使用してみてください

$div_grad_1 = (isset($_GET['div_grad_1'])) ? $_GET['div_grad_1'] : "";
于 2012-11-27T22:48:55.983 に答える