web表单的关联数组


associative array with web form

大家好,我是一个新的学习者,并试图为用户输入id,标题和描述的工作创建一个关联数组,但这是不正确的,你能指导我完成这个吗?

我还想通过标题或描述搜索工作,并返回工作id,

Thanks alot

<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']);
?>

不需要像

那样分隔值
$_POST['jobid'] ,$_POST['jobname'], $_POST['jobdesc']

并将它们括在数组中。因为它们最初就是这样形成的。当用户提交具有多个值的帖子时,所有这些值都存储在超全局数组$_POST中,因此,而不是将它们分开,然后将它们附加到数组中,只需依赖于这个数组,因为它包含了您需要的所有内容。

$all_arrays = $_POST;

调整你的标记为

<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,依此类推

关联数组是指数组中的值可以通过键来访问,键可以作为索引。

在你的代码中,如下所示,你给数组赋了一个没有键的值,因此它不是关联的。此外,您正在向数组中添加一个数组,使其成为多维的,这在这种情况下是不合适的。

$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搜索行,并返回结果数组。