2013-05-25 38 views
0

好日子所有,,我是新學習者,並試圖做一個用戶輸入ID,標題和描述,但它不正確的工作的關聯數組,可以指導我通過這個?關聯數組與網絡形式

我也希望搜索其標題或描述的作業並返回作業ID,

非常感謝

<html> 
<body> 
This form is for storing array of jobs with ID and description for each 
<form method = "post" > 
input job iD <input id="jobid"> 
input jobname <input id="jobname"> 
Write a description <input id="jobdesc"> 
<input type="submit" value="click to store input" > 
</form> 

</body> 
</html> 

<?php 
$jobs_array = array(); 
$jobs_array[] = array ($_POST['jobid'] ,$_POST['jobname'], $_POST['jobdesc']); 
?> 
+0

我不太清楚你的意思 - 你可以擴展你期望看到的? – Farkie

+0

Theres沒有什麼確切的錯誤與您的PHP,除非你創建一個瘋狂的多維數組,你可能並不意味着,你的問題的大部分在於你的表單標記 – Nick

+0

哦,好吧,如果我想添加多個工作? – sisimh

回答

0

優化了你的標記有點

<html> 
<body> 
    <p>This form is for storing array of jobs with ID and description for each </p> 
    <form action = "<?php echo $_SERVER['PHP_SELF']; ?>" method = "post" > 
     <p><label for = "jobid">input job iD</label> <input type = "text" name = "jobid" id="jobid"></p> 
     <p><label for = "jobname">input jobname</label><input type = "text" name = "jobname" id="jobname"></p> 
     <p><label for = "jobdesc">Write a description</label><input type = "text" name = "jobdesc" id="jobdesc"> 
     <input type="submit" value="click to store input" > 
    </form> 

</body> 
</html> 

<?php 
    $jobs_array = array ($_POST['jobid'] ,$_POST['jobname'], $_POST['jobdesc']); 
?> 

您可以$jobs_array[0]訪問jobid現在,等等。

+0

感謝您的評論,以及我認爲HTML部分是好的,但PHP是什麼不工作,, 對 ? 請同時告訴我你添加$ _SERVER ['PHP_SELF']的原因? – sisimh

+0

@RawanNj'$ _SERVER ['PHP_SELF']'只是回顯當前頁面以用作提交頁面來處理PHP,如果您使用我擁有的應該肯定的工作,只需使用'echo $ jobs_array [0] '等來從陣列中獲得你需要的。 html輸入需要orber中的name屬性才能正確發送 – Nick

+0

謝謝$ _SERVER ['PHP_SELF']幫助... 但我該如何添加多個作業?這就是爲什麼我認爲它應該是多維的。你覺得怎麼樣? – sisimh

0

關聯數組是一個,你必須在一個陣列,可以值被一個密鑰訪問 - 充當索引。

在您的代碼中,如下所示,您將爲數組賦值而不使用鍵,因此它不是關聯的。此外,你正在給數組添加一個數組,使其成爲多維的,這在這種情況下是不合適的。

$jobs_array[] = array ($_POST['jobid'] ,$_POST['jobname'], $_POST['jobdesc']); 

的代碼應該是這樣的:

$jobs_array = array("job_id" => $_POST['jobid'], "job_name" => $_POST['jobname'], "job_description" => $_POST['jobdesc']); 

而且,爲什麼$ _POST變量沒有設置的原因是因爲你使用id而非nameid引用樣式表,而name引用如何訪問該字段中的數據。

對於問題的第二部分,您需要使用數據庫來存儲作業,然後從那裏運行查詢,從而您可以通過其id搜索行,並返回一個數組結果。

+0

非常感謝大的解釋是正確的這兩個概念混合了一點現在什麼聯想數組意味着清楚感謝@max_ ,,,但我可以用這種方式輸入多個工作?這是我試圖讓它跨國的原因,但不知道如何 – sisimh

+0

第二部分,,我想訪問它的陣列它自己沒有連接到數據庫..它可以正常工作? – sisimh

1

你不需要來分隔值一樣

$_POST['jobid'] ,$_POST['jobname'], $_POST['jobdesc'] 

並附它們在數組中。因爲它們最初是這樣形成的。當用戶提交一個包含多個值的帖子時,所有這些值都存儲在超級全局數組$_POST中,所以不是將它們分開然後將它們附加到一個數組中,而僅僅依賴於這個數組,因爲它裏面只有你所需要的。

$all_arrays = $_POST;

+0

感謝您的評論,,,但那是怎麼回事? – sisimh

+0

我的意思是,'$ _POST'全局內已經包含了你想要的所有信息。後來你甚至可以說'$ p = $ _POST'並且回顯出'$ p ['jobname']'或'$ p ['jobid']'所以,不需要在一個大陣列中插入所有數組。 – samayo

+0

cool我明白現在感謝 – sisimh