2015-01-16 2 views
1

У меня есть сценарий, который должен предупредить сообщение, взятое из файла PHP после события click. Я пробовал оба jQuery $ .get() и $ .ajax(), но оба не работали. $ .ajax() работает, но выводит пустое сообщение, $ .get() предупреждает «null».

load.php

<?php 
    $string = "prova"; 
    echo json_encode($string); 
?> 

jquery_save.js

$(document).ready(function(){ 
    $("#carica").click(function(){ 
     loadPHP(); 
    }); 
}); 

function loadPHP() { 
    $.get("load.php", function(data) { 
     alert(data) 
    }, "json"); 
}; 

index.html

<!doctype html> 
    <html> 
    <head> 
     <meta charset="utf-8"> 
     <title>This is just a test for Stackoverflow</title> 
     <script src="//code.jquery.com/jquery-1.11.2.min.js"></script> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
     <script type="text/javascript" src="jquery_save.js"></script> 
    </head> 

    <body> 
    <form> 
     <input style="background-image:url(img/lc-load.png);" type="submit" value="Carica" name="carica" id="carica"> 
    </form> 
    </body> 
</html> 

В этом ва y Я получаю предупреждение, но с «нулевым» выходом. Я попытался это тоже:

load.php

<?php 
    $string = "prova"; 
    echo $string; 
?> 

jquery_save.js

$(document).ready(function(){ 
    $("#carica").click(function(){ 
     loadPHP(); 
    }); 
}); 

function loadPHP() { 
    $.ajax({ 
     type: 'GET', 
     url: 'load.php', 
     success: function(data) { 
      alert(data); 
     } 
    }); 
}; 

Это дает мне предупреждение с отмечая внутри. Оба способа делают обновление страницы после закрытия предупреждающего сообщения (и я не хочу, чтобы это произошло). Я использовал другую функцию с $ .ajax(), чтобы дать переменные другому файлу PHP без проблем, но я не могу принимать переменные из файлов PHP.

+2

Если вы вызываете страницу php напрямую, что отображается в браузере? – epascarello

+1

Вы уверены, что задаете правильный путь к файлу php? – LorDex

+0

@epascarello это показывает мне «prova» с цитатами. –

ответ

2

Вы должны предотвратить по умолчанию нажмите действия на -

$("#carica").click(function(event){ 
    event.preventDefault(); 
    loadPHP(); 
}); 

Ваше предупреждение не происходит из-за перенаправления страниц.

+0

Спасибо, это было! Я добавил «event.preventDefault();» раньше, но, возможно, я написал это неправильно, потому что ничего не изменил. Теперь все сработало, спасибо вам большое! –

0

Вы используете кнопку отправки, которая вызывает событие отправки, которое не обрабатывается.

попробуйте изменить его, как этот

<input style="background-image:url(img/lc-load.png);" 
type="button" value="Carica" name="carica" id="carica" /> 

Вы используете кнопку отправки, чтобы обеспечить запасной вариант для браузеров с JavaScript отключен? если это так, вам нужно предотвратить событие отправки

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