2016-04-15 2 views
1

У меня возникли проблемы с отображением значения переключателя, который я нажимаю в своем базовом веб-приложении, над которым я сейчас работаю.Невозможно отобразить значение переключателя с помощью AJAX и PHP

Вот мой ajax.js файл:

$('#selection').change(function() { 
    var selected_value = $("input[name='kobegreat']:checked").val(); 

    $.ajax({ 
     url: "kobegreat.php", 
     data: selected_value, 
     type: "POST", 
     datatype: "json", 

     success: function(json) { 
      var test1 = $("<p></p>").text(json["name"]); 
      $("h3").append(test1); 
      alert("AJAX was a success"); 
     }, 
     cache: false 
    }); 
}); 

И мой файл kobegreat.php:

<?php 

    if($_SERVER['REQUEST_METHOD] == "POST") { 
     $value = $POST['kobegreat']; 
     $return = $_POST; 
     if($return["name"] == "") { 
      $return["name"] = $value; 
     } 
     echo json_encode($return); 
    } 
?> 

HTML код, который я пытаюсь показать свое значение на:

<h2>Select a Great Kobe Moment.</h2> 
<form id="selection" method="get"> 
    <input type="radio" name="kobegreat" value="kobe1" checked/>Kobe1 
    <input type="radio" name="kobegreat" value="kobe2"/>Kobe2 
    <input type="radio" name="kobegreat" value="kobe3"/>Kobe3 
</form> 

<div id="target"> 
    <h3>Great Kobe Moment!</h3> 
</div> 

Все, что я хочу, это программа для отображения значения под одним из моих заголовков, которые у меня есть на моей веб-странице, но это не будет сделано. Я получаю предупреждение о том, что AJAX работает в завершенном разделе, но я также получаю сообщение об ошибке в журнале, в котором говорится, что json не определен. Оглянитесь везде, чтобы помочь в решении этой проблемы, заблаговременно за помощь.

+2

'.text (json [" name]) 'вам что-то не хватает –

+2

Также' date: selected_value, '... Это должны быть данные: {date: selected_value},' right? – Rayon

+2

, вы ошибаетесь значения в php здесь $ POST ['kobegreat'] –

ответ

2

Если вы правильно поняли, просто попробуйте передать имя выбранного переключателя в файл kobegreat.php и вернуть его в ответ. Попробуйте это:

<!DOCTYPE html> 
<html> 
<head> 
<script src="https://code.jquery.com/jquery-2.2.3.min.js"></script> 
</head> 
<body> 
<h2>Select a Great Kobe Moment.</h2> 
<form id="selection" method="get"> 
    <input type="radio" name="kobegreat" value="kobe1" checked/>Kobe1 
    <input type="radio" name="kobegreat" value="kobe2"/>Kobe2 
    <input type="radio" name="kobegreat" value="kobe3"/>Kobe3 
</form> 

<div id="target"> 
    <h3>Great Kobe Moment!</h3> 
</div> 

<script> 
    $('#selection').change 
    (
     function() 
     { 
      var selected_value = $("input[name='kobegreat']:checked").val(); 

      $.ajax 
      ( 
       { 
        url: "kobegreat.php", 
        dataType : "json", 
        method: "POST", 
        cache: false, 
        data: { selected_value : selected_value }, 

        success: function(response) 
        { 
         var test1 = "<p>"+response+"</p>"; 
         $("h3").append(test1); 
         alert("AJAX was a success"); 
        } 
       } 
      ); 
     } 
    ); 
</script> 
</body> 
</html> 

kobegreat.php

<?php 

    if($_SERVER['REQUEST_METHOD'] == 'POST') 
    { 
     $value = filter_input(INPUT_POST, "selected_value"); 

     if (isset($value)) 
     { 
      echo json_encode($value); 
     } 
    } 

Советы: Вы никогда не должны получить доступ к суперглобальном массив $ _POST непосредственно, всегда используйте функцию фильтра, так как он является более безопасным.

+0

нужно использовать '$ .ajax', и вам нужно' json'? – Black

+0

Мне это понадобится для того, что я планирую делать дальше h вытягивает ссылки изображения из базы данных mysql и отображает изображение в соответствии с тем, какой переключатель был выбран. – Scott

+0

Хорошо, я обновил код. – Black

Смежные вопросы