大家好,我是一个新的学习者,并试图为用户输入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
而不是name
。id
指的是样式表,而name
指的是如何访问字段中的数据。
对于问题的第二部分,您需要使用数据库来存储作业,并且从那里,您可以运行查询,从而能够根据其id搜索行,并返回结果数组。