2010-01-23 2 views
1
//this is in php 
function msgbox($msg, $type) 
    { 
    if ($type == "alert") 
     { 
     // Simple alert window 
     ?> <script language="JavaScript"> alert("<? echo $msg; ?>"); </script> <? 
     } 
    elseif ($type == "confirm") 
     { 
     // Enter Confirm Code Here and assign the $result variable for use 
     // Should include "OK" and "Cancel" buttons. 
     ?> 
      <script language="JavaScript"> 
      if (confirm("<? echo $msg; ?>")) 
       { 
       <? $result == "ok"; ?> 
       } 
      else 
       { 
       <? $result == "cancel"; ?> 
       } 
      </script> 
     <? 
     } 
    } 



if ($page_title->exists()) 

{msgbox("page exists,do you want to delete", "confirm"); 

}  
if ($result == "ok") 
//code.. 

Проблема заключается в том, что $result не читает значение из окнеПодтверждение я думаю, потому что если условие не выполняется, и выполнение программы будет где его будет идти без предложения if.Присвоение результата подтверждающим поле JavaScript переменной PHP

ответ

-1

Вы используете короткие теги, убедитесь, что они включены из файла php.ini, иначе код php не будет выполняться в коде.

2

Вы не можете смешивать код на стороне сервера (PHP) с таким кодом клиента. Для javascript для изменения состояния PHP вам необходимо сделать HTTP-вызов (часто используется AJAX).

Вам необходимо прочитать PHP-учебник и убедиться, что вы понимаете концепции.

0

То, что вы пытаетесь выполнить, может быть создано с помощью Ajax, если страница создана на стороне сервера и затем отправляется пользователю, вы не можете напрямую изменять значение $ result, как вы планировали. Во-первых понять ссылку на AJAX и как использовать его ..

101 article on Ajax with jQuery (sitepoint.com)

Простая реализация AJAX с JQuery и PHP

Client.html

<!--some html...--> 
<a class="ajax" href="/delete.php?title=some+title">Delete action link</a> 

<script type="text/javascript"> 
// assuming jQuery has been loaded 
$(function() { 
    $('a.ajax').click(function() { 
     // get link's href, get main url part and query part 
     var link = $(this).attr('href'); 
     var route = link.substring(0, link.lastIndexOf('?')); 
     var query = link.substring(link.lastIndexOf('?') + 1); 

     // perform ajax call, to the main part of the link, with data 
     $.ajax({ 
      type: "GET", 
      url : route, 
      data : query, 
      success : function (data) { 
       if (data === '1') { 
        window.alert('page removed'); 
       } else { 
        window.alert('error'); 
       } 
      } 
     }); 

     // prevent default behavior 
     return false; 
    }); 
});  
</script> 

и А delete.php скрипт, который принимает $ _GET ['title'] как параметр

<?php 
    $title = $_GET['title']; 
    if ($pages->contain($title)) { 
     $pages->remove($title); 
     echo '1'; 
    } 
?> 

Обратите внимание, что это только упрощена, чтобы показать вам, как простой AJAX вызов может быть сделано

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