2011-08-17 67 views
0

我有以下腳本:設定輸入值在PHP中使用值從jQuery的

編輯:

<?php 
session_start(); 
//connect to database 
function connect() { 
    $dbh = mysql_connect ("localhost", "d", "a") or die ('I cannot connect to the database because: ' . mysql_error()); 
    mysql_select_db("PDS", $dbh); 
    return $dbh; 
} 

if(isset($_SESSION['username'])){ 
    $dbh = connect(); 
    $id = $_SESSION['id']; 
    $sql="SELECT a.athleteId, a.fName, a.lName FROM Athletes a, SupportStaff s, StaffAthletes sa WHERE sa.staffId = $id AND a.athleteId = sa.athleteId"; 
    $result=mysql_query($sql); 
    $ids = array(); 
    $options=""; 
    $i = 1; 
    while ($row=mysql_fetch_array($result)) { 
    $ids[]=$row['atheleteId']; 
    $f=$row["fName"]; 
    $l=$row["lName"]; 
    $options.="<OPTION VALUE=\"$i\">".$f.' '.$l."</OPTION>"; 
    $i++; 
    } 

    $array = ""; 
    for($x = 0; $x < count($ids); $x++) 
    { 
     $array .= "[" . $ids[$x][0] . ", ". $ids[$x][1] . "]" ; 
     if($x+1 < count($ids)) 
     $ids .= ", "; 
    } 
    $idsArray = "new Array(" . $array . ")"; 

    echo("<script>"); 
    echo("var $ids = ".$idsArray); 
    echo("</script>"); 
?> 

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <script src = "jQuery.js"></script> 
    <script> 
    $(document).ready(function(){ 
     $("#go").click(function(e){ 
     if($("#selectathlete option:selected").val() == "0"){ 
     alert("Please Select An Athlete"); 
     }else{ 
     //set hidden textfield to id of selected athlete 
     //NEED TO ACCESS $ids ARRAY HERE 
     $("form#athleteselect").submit(); 
     } 
     }); 
    }); 
    </script> 
    <title>Personal Diary System - Home Page</title> 
    </head> 
    <body> 
    <h1>Home Page</h1> 
    <p>Select An Athlete: 
    <SELECT ID ="selectathlete" NAME="athletes"> 
    <OPTION VALUE="0">Choose</OPTION> 
    <?php echo($options);?> 
    </SELECT> 
    </p> 
    <form id = "athleteselect" name="athleteselect" action="viewathleteprofile.php" method="post"> 
    <input type = "hidden" name = "hidden" id = "athleteId" value = ""> 
    <input type = "button" name = "go" id = "go" value = "Go"/> 
    </form> 
    </body> 
</html> 
<?php } ?> 

我有一個ID =「athleteId一個隱藏的文本框」我有一個PHP的數組,它包含在按下開始按鈕(即在$("#go").click事件處理程序,我想分配給隱藏的文本字段值

你可以這樣做:

$("#athleteId").text() = <?php echo("$ids[4]") ?> 
+1

請將您剛剛張貼在PHP,因爲輸出的HTML更容易PHP在這裏並沒有真正的相關 – GBa

+0

考慮到我無法集中注意力,甚至在合理的時間內找到註釋行,所以需要一個更好的方法來做到這一點 –

+0

由於您在這個大混亂中只引用了一個PHP變量,爲什麼你不只是輸出所有的JavaScript作爲普通輸出和'<?php echo $ the_one_variable; ''裏面呢? –

回答

1

改變文本框的值,你做

$("#id-of-your-textbox").attr("value","whatever-value"); 

當然任何價值可以是任何你想要

0

嘗試發送$ids數組以及頁面響應作爲JavaScript數組。

//This code will render the php variable as a js array along with page response 
    $array = ""; 
    for($x = 0; $x < count($ids); $x++) 
    { 
    $array .= "[" . $ids[$x][0] . ", ". $ids[$x][1] . "]" ; 
    if($x+1 < count($ids)) 
    $ids .= ", "; 
    } 
    $idsArray = "new Array(" . $array . ")"; 

    echo("<script>"); 
    echo("var $ids = ".$idsArray); 
    echo("$(document).ready(function(){"); 
    echo("$(\"#go\").click(function(e){"); 
    echo("var selText = $(\"#selectathlete option:selected\").text();"); 
    echo("if($(\"#selectathlete\").val() == \"0\"){"); 
    echo("alert(\"Please Select An Athlete\");"); 
    echo("}else{"); 
    echo("$(\"#athleteId\").val($ids[$(\"#selectathlete\").val()]);"); //not working 
    echo("$(\"form#profile\").submit();"); 
    echo("}"); 
    echo("});"); 
    echo("});"); 
    echo("</script>"); 

現在,因爲你沒有在上面的代碼(回聲),你可以直接使用它作爲你的頁面上的JS使用任何PHP變量。你可以回顯$ids陣列。

//This code will render the php variable as a js array along with page response 
     $array = ""; 
     for($x = 0; $x < count($ids); $x++) 
     { 
     $array .= "[" . $ids[$x][0] . ", ". $ids[$x][1] . "]" ; 
     if($x+1 < count($ids)) 
     $ids .= ", "; 
     } 
     $idsArray = "new Array(" . $array . ")"; 

echo("<script>"); 
echo("var $ids = ".$idsArray); 
echo("</script>"); 


<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#go").click(function(e){ 
      var selText = $("#selectathlete option:selected").text(); 
      if($("#selectathlete").val() == "0"){ 
       alert("Please Select An Athlete"); 
      }else{ 
       $("#athleteId").val($ids[$("#selectathlete").val()]); 
       //If you want the fourth index as per your edited question use this 
       //$("#athleteId").val($ids[4]); 
       $("form#profile").submit(); 
      } 
     }); 
    }); 
</script> 
+0

@ user559142 - 這對你有幫助嗎?我看到你的其他問題與此相關,並且你在下一個問題中使用了這個答案。如果它幫助你,請將它標記爲答案,謝謝 – ShankarSangoli

+0

好的,改變它。你是對的jQuery。非常感謝。你能解決我上面編輯的問題....我如何將$(「#atheleteId」)。text()分配給$ ids php數組中的值? – user559142

+0

我已經向您展示瞭如何設置隱藏字段值。 – ShankarSangoli