討論區快速選單
知識庫快速選單
網路投保旅行平安險 傑米的攝影旅遊筆記 政府補助!學嵌入式+物聯網
[ 回上頁 ] [ 討論區發言規則 ]
php使用javascript的問題
更改我的閱讀文章字型大小
作者 : mrtetaco(笨魚)
[ 貼文 6 | 人氣 1914 | 評價 0 | 評價/貼文 0 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/11/29 下午 08:28:02
function.php中有這一段
<a href='javascript:delete_data($weeklysn)'>刪除</a>

然後index.php中
include "function.php";
然後在
<head>
<meta http-equiv="content-type" content="text/html; charset=Big5">
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<title>週報系統</title>
  <script language='JavaScript' type='text/JavaScript'>
  <!--
  function delete_data(weeklysn){
    var sure = window.confirm("確定要刪除此資料?");
    if (!sure) return;
    location.href="{$_SERVER['PHP_SELF']}?op=del_data&weeklysn=+$weeklysn";
  }
  //-->
  </script>
</head>

執行時有出現對話視窗,但是按下確定時
網址變成http://127.0.0.1/weekly/{$_SERVER['PHP_SELF']}?op=del_data&weeklysn=+$weeklysn

HTTP 404 找不到

請各位高手幫忙指導一下>"<...
作者 : alice1206(我不笨,我願意學!) 人氣指數超過10000點
[ 貼文 138 | 人氣 26018 | 評價 140 | 評價/貼文 1.01 | 送出評價 36 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人mrtetaco註記此篇回應為很有道理 2006/11/30 上午 08:22:02
你執行index.php ,去檢視這個原始檔,你會發現在你的javascript裡,那些變數已經不是變數了。被當成字串輸出 .......
作者 : alice1206(我不笨,我願意學!) 人氣指數超過10000點
[ 貼文 138 | 人氣 26018 | 評價 140 | 評價/貼文 1.01 | 送出評價 36 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人mrtetaco註記此篇回應為很有道理 2006/11/30 上午 08:25:02
你的程式觀念有點不清楚的樣子 ...
你的是index.php
但你這隻程式裡面卻夾著html
<?

這裡是放php程式碼的區塊

?>
所以你的javascript 應該要變成這個樣子
location.href="<?$_SERVER['PHP_SELF']?>?p=del_data&weeklysn=+$weeklysn";

有發現哪裡不一樣了嗎?????
作者 : mrtetaco(笨魚)
[ 貼文 6 | 人氣 1914 | 評價 0 | 評價/貼文 0 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/11/30 下午 04:01:02
被大大發現了...我php大部份是自己看書研究的...
所以,順便寫個小程式...練習撰寫所以觀念上會比較不好....
我之前一直認為是$weeklysn這個變數沒帶到...
經過你的說明~發現自己的另一個錯誤
依照大大你的指示...改完後~
http://127.0.0.1/weekly/index.php?op=del_data&weeklysn=$weeklysn
我自己猜想是否是javascrip跟php傳遞變數出了問題?
不知道是否正確,如果正確的話該如何解決呢?>"<
麻煩大大再次的指導一下^^"
先謝謝大大你了
作者 : alice1206(我不笨,我願意學!) 人氣指數超過10000點
[ 貼文 138 | 人氣 26018 | 評價 140 | 評價/貼文 1.01 | 送出評價 36 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人mrtetaco註記此篇回應為很有道理 2006/11/30 下午 04:40:49
location.href="<?$_SERVER['PHP_SELF']?>?p=del_data&weeklysn=+$weeklysn";

你的 $weeklysn 也是一樣的問題。
你一樣要用<? ?> 把這個變數括起來,要記得 在<? ?> 要給他變數值。
比如說<? $weeklysn =3 ?> 因為 $weeklysn 這個是「php用的變數」,javascript 是看不懂的。
如果你改成這樣
location.href="<?$_SERVER['PHP_SELF']?>?p=del_data&weeklysn=+<?$weeklysn?>";
得到的結果是=>>這個$weeklysn 在輸出後會是空值
為什麼?
因為你有這個變數,卻沒有給他值,所以他輸出會是空值。


一個經驗談(算是觀念吧,我也不知道)
1.index.php <==雖然這隻是php程式,如果這隻php程式裡有包住html的東西
只要是php的程式碼,你一定要用<? ?> 來包住,不然都會被當成「文字」輸出。
2.javascript 與 php 彼此看不懂雙方的語言,所以在使用php + javascript的時候,要注意
變數的宣告和變數值。

... 其實還很多,但先不說,有遇到問題再問,現在說太多你會更不清楚。
我以前也犯過跟你一樣的錯誤~~ 加油!

作者 : mrtetaco(笨魚)
[ 貼文 6 | 人氣 1914 | 評價 0 | 評價/貼文 0 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/11/30 下午 05:05:34
有傳值可是傳不進去的樣子
function.php中
<a href='javascript:delete_data($weeklysn)'>刪除</a>
這一段呼叫javacript執行delete_data這個涵數並傳送$weeklysn

index.php中

<script language='JavaScript' type='text/JavaScript'>
  <!--

function delete_data(weeklysn){
    var sure = window.confirm("確定要刪除此資料?");
    if (!sure) return;
location.href="<?$_SERVER['PHP_SELF']?>?p=del_data&weeklysn=+<?$weeklysn?>";

  }
  //-->
  </script>

裡面的這一行function delete_data(weeklysn){
不是就有帶變數進去嚕?@@"

再次的麻煩大大您>"<
感恩.....

作者 : alice1206(我不笨,我願意學!) 人氣指數超過10000點
[ 貼文 138 | 人氣 26018 | 評價 140 | 評價/貼文 1.01 | 送出評價 36 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人mrtetaco註記此篇回應為很有道理 2006/12/1 上午 07:55:55
function.php中
<a href='javascript:delete_data($weeklysn)'>刪除</a>
這一段呼叫javacript執行delete_data這個涵數並傳送$weeklysn


這裡你有「$weeklysn」這個變數,可是卻沒有指定一個值給他。
什麼是指定一個值:
$weeklysn = 3; <<== 這就是指定一個值給他


你試試把你的function.php 在下面這段<a href='javascript:delete_data($weeklysn)'>刪除</a>
之前加入==>$weeklysn = 3; 你再執行一次 你看看會有什麼變化

備註說明:
你寫的這段程式在你心裡,可以有你自已「認為」的一種運作方式。
但那是「理論」上行得通。
不過電腦不是人工智慧,他跟你無法心電感應 ...
你必需要一步一步的給他步驟,在適當的時機給他變數以及給這個變數一個值(這叫變數值)
作者 : mrtetaco(笨魚)
[ 貼文 6 | 人氣 1914 | 評價 0 | 評價/貼文 0 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/12/1 下午 06:00:46
再次打擾你....
我貼完整的code應該比較能知道問是在那>"<
function.php中的該涵數是這樣寫的
function gauge(){
  global $link;
  $department = $_POST['department'];
  $dateweekly = $_POST['dateweekly'];
  $sql="select * from weeklydata where department ='{$department}' and dateweekly='{$dateweekly}' order by weeklysn";
  $result=mysql_db_query("weekly_news",$sql,$link) or die("無法取得資料!<br>".$sql);
  $fish_array=mysql_fetch_row($result);
  if(empty($fish_array)){
     略....
     }else{
     list($weeklysn,$dateweekly,$weeklydata,$department,$datee) = $fish_array;
     $main="<p class='diary_content'>
     <table class='list' border=1 width=600>
     <tr class='admin_tool' align='center'><td colspan=4>你選擇的己有資料!資料如下!</td></tr>
     <tr align='center'><td width=150>週數</td><td width=150>內容</td><td width=100>部門</td><td width=100>最後修改日期</td></tr>
     <tr align='center'><td width=150>{$dateweekly}</td><td width=150>{$weeklydata}</td><td width=100>{$department}</td><td width=100>{$datee}</td></tr>
     <tr class='admin_tool' align='center'><td colspan=4><a href='{$_SERVER['PHP_SELF']}?op=modify_diary&weeklysn={$weeklysn}'>編輯</a> | <a href='javascript:delete_data($weeklysn)'>刪除</a> |</td></tr>
     </table>
     </p>
     <br>
     ";
    }
  
 return $main;
}

指到刪除的連結~看瀏灠器左下角可以看到javascript:delete_data($weeklysn的值)

index.php中是用下列連接...

<script language='JavaScript' type='text/JavaScript'>
  <!--
  function delete_data($weeklysn){
    var sure = window.confirm("確定要刪除此資料?");
    if (!sure) return;
    //location.href="{$_SERVER['PHP_SELF']}?op=del_data&weeklysn=+$weeklysn";
    location.href="<?$_SERVER['PHP_SELF']?>?op=del_data&weeklysn=<?$weeklysn?>";

  }
  //-->
  </script>

還是不知道那裡出了問題>"<
抱歉~小弟資質愚頓...多次麻煩大大指點...
作者 : alice1206(我不笨,我願意學!) 人氣指數超過10000點
[ 貼文 138 | 人氣 26018 | 評價 140 | 評價/貼文 1.01 | 送出評價 36 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人mrtetaco註記此篇回應為最佳解答 2006/12/4 上午 07:47:29
在你貼的程式碼當中,發現了二個地方。我把那二個地方的程式碼po出來。
在function gauge()
{
 ....略
  if(empty($fish_array)){
     略....
     }else{
     list($weeklysn,$dateweekly,$weeklydata,$department,$datee) = $fish_array;
     //$weeklysn,$weeklydata,$datee ==>> 到這裡為止,我看不到這三個變數,你有給他值。
     //你在下面的$main中,有寫到這些變數,在輸出的時候會是空值唷。
     $main="<p class='diary_content'>
     <table class='list' border=1 width=600>
     <tr class='admin_tool' align='center'><td colspan=4>你選擇的己有資料!資料如下!</td></tr>
     <tr align='center'><td width=150>週數</td><td width=150>內容</td><td width=100>部門</td><td width=100>最後修改日期</td></tr>
     <tr align='center'><td width=150>{$dateweekly}</td><td width=150>{$weeklydata}</td><td width=100>{$department}</td><td width=100>{$datee}</td></tr>
     <tr class='admin_tool' align='center'><td colspan=4><a href='{$_SERVER['PHP_SELF']}?op=modify_diary&weeklysn={$weeklysn}'>編輯</a> | <a href='javascript:delete_data($weeklysn)'>刪除</a> |</td></tr>
     </table>
     </p>
     <br>
     ";
    }
}
在index.php
<script language='JavaScript' type='text/JavaScript'>
  <!--
     //你這裡的$weeklysn 會被當成「文字」輸出唷。
     //別忘了給他<? ?>給他包起來
  function delete_data($weeklysn){

我想我的註解應該還滿清楚的,你再試試。

ps:利用論壇方式發問問題,要多點耐心唷,因為雖然你把你的程式碼都po出來了,但我沒有實際看你整個run的過程,我們二個在溝通上面難免有差異唷。^^加油囉。
ps:你不笨,只是現在你不懂,所以覺得一切都很難,似乎有很多問題又好像都不是問題。
   等你熟了,你就會覺得這些東西很容易的。
作者 : mrtetaco(笨魚)
[ 貼文 6 | 人氣 1914 | 評價 0 | 評價/貼文 0 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/12/5 下午 10:31:11
這段時間麻煩大大你了^^"

最後改在刪除的連結
加上onclick=\"return confirm('您確定要刪除嗎?')的script語法@@"
就ok了~~真的非常感謝你這陣時間的辛勞~
希望以後有問題能繼續向您討教~
 板主 : 酷爸爸
 > PHP - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - PHP - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
PHP
1 Fillano 1400 
2 dreamer...... 1170 
3 阿文 940 
4 路人乙 840 
5 pangpang 620 
6 kiang 580 
7 Snaking 470 
8 Aery 460 
9 kagaya 370 
10 mygod 370 
PHP
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.0625