2016-07-11 2 views
2

Будем надеяться, что это будет простой вопрос ...Jquery возврата PHP скрипт на кнопку мыши

В настоящее время у меня есть страница HTML, которая включает в себя PHP скрипт. После того, как знаки пользователя в, с включенными сценарий PHP, данные автоматически возвращается на страницу, следующим образом:

<section class="content"> 
<?php include("api/qnams_all.php"); ?> 
</section> 

Этот сценарий включает в себя запрос, который возвращает таблицу с ID # называется example1.

Используя этот идентификатор, я использовать JQuery DataTables для форматирования данных из этого сценария:

$('#example1').DataTable({ 
{ 
    "dataType": "json", 
    "iDisplayLength": 25, 
    "bDestroy": true, 
    "stateSave": true 
}); 

Теперь, что я хотел бы сделать, это проверить, если кнопка была нажата с помощью JQuery, и если поэтому запустите другой php-скрипт.

Таким образом, в этом разделе теге выше, я хочу сделать что-то вроде этого:

<section class="content"> 
<button type="button" id="buttonSearch">Search</button> 
<script type="text/javascript"> 
    if('#buttonSearch').click(function() 
    { 
    // return <?php include("api/differentScript.php"); ?> 
    } 
    else 
    { 
    // return <?php include("api/qnams_all.php"); ?> 
    }); 
</script> 
</section> 

Я уверен, что синтаксис, вероятно, неправильно в JavaScript. Я пытался показать пример того, что я пытаюсь сделать.

Я не уверен, что это может быть сделано. Если да, пожалуйста, просветите меня. Буду весьма признателен за это.

ответ

2

Я бы воспользовался ссылкой на страницу ajax. Послушайте, что было запрошено в PHP и верните его. Затем добавьте результат этого в объект HTML на странице.

Я бы подошел к нему аналогично этому;

<?php 

if(isset($_POST['script1'])){ 
    include("api/differentScript.php"); 
    exit; 
} 

if(isset($_POST['script2'])){ 
    include("api/qnams_all.php"); 
    exit; 
} 

?> 

<div id='output'></div> 


<script type="text/javascript"> 

    $("#buttonSearch").on('click', function(){ 
     $.ajax({ 
      type:"POST", 
      url: "/page_location/", 
      data: "script1=true", 
      success: function(result){ 
       $("#output").html(result); 
      } 
     }); 
    }); 

    $("#buttonSearch2").on('click', function(){ 
     $.ajax({ 
      type:"POST", 
      url: "/page_location/", 
      data: "script2=true", 
      success: function(result){ 
       $("#output").html(result); 
      } 
     }); 
    }); 

</script> 

Я не знаю, как работает таблицы данных, если вы должны были хранить данные в переменной вы можете отправить его с почтовыми данными, изменив его:

data: {script1: true, post_data_1: var}, 
+0

используя ваш код, как я могу отправить переменные javascript на php-скрипт в ajax? –

+1

обновили код, решает ли ваша проблема? – atoms

+1

Определенно на правильном пути. Еще несколько твиков, и я думаю, что я хорош. Однако, да, он действительно решает мою проблему по большей части. Большое вам спасибо, сэр. –

1

К сожалению, что вы пытаетесь сделать, не будет работать, не отправив что-то обратно на ваш веб-сервер. PHP - это серверный язык, поэтому, как только вы находитесь в браузере с помощью Jquery, вы больше не можете выполнять PHP на этой странице.

У вас есть два варианта, если вы не хотите, чтобы отправить оба варианту вниз по течению с первоначальным запросом: вы можете перенаправить по щелчку:

<script type="text/javascript"> 
if('#buttonSearch').click(function() 
{ 
    window.location.href = "/api/differentScript.php"; 
} 
else 
{ 
    window.location.href = "/api/qnams_all.php"; 
}); 
</script> 

Или, глядя на ваш URL и отметить, что вы используете АНИ, вы можете сделать асинхронный вызов с помощью AJAX:

<script type="text/javascript"> 
$('#buttonSearch').click(function() 
{ 
    $.ajax({ 
     dataType: 'json', 
     url: "/api/differentScript.php", 
     data: {key: 'value'}, 
     success: function(repsonse) { 
     var responseObject = JSON.parse(response); 
     //Do something with response object on page 
    }, 
    error (message) { 
     //handle errors 
    } 
}); 
</script> 

If концы '' differentScript.php в

return json_encode($results); 

И $ Результаты является объектом PHP или массив, то

JSON.parse(response) 

превратит ваш PHP массив в объект JQuery.

0

Вы не можете включить PHP-скрипт в Javascript. Вам нужно будет сделать вызов Ajax для каждого условия &, а затем выполнить необходимые действия с помощью PHP-скрипта. Если вы «включили» скрипты PHP, как вы уже упоминали выше, они будут напрямую включены при загрузке страницы, а не при нажатии любой кнопки. Плюс это неправильный способ сделать это.

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