前后端数据交互问题

时间:2022-01-27 17:08:02
本人才学前端不久,主要想从事前端的工作。但目前遇到的情况是前端页面做好了,后端其他人也做好了,但现在不知道怎么做前后端的数据交互(后端的人说不会,叫前端做)。后端使用PHP写的,但PHP我基本没学过,现在我要做的话,要去看些什么东西?

8 个解决方案

#1


所谓网页,归根结底就是一文本文件。所谓网页内容,归根结底就是一挺长的字符串。你只要把后台得到的字符放到前台页面需要的地方就行了。你用的是PHP,那么用echo把后台字符写到需要的地方就行

#2


引用 1 楼 heaniryy 的回复:
所谓网页,归根结底就是一文本文件。所谓网页内容,归根结底就是一挺长的字符串。你只要把后台得到的字符放到前台页面需要的地方就行了。你用的是PHP,那么用echo把后台字符写到需要的地方就行


那么最简单的一点,表单验证问题,我前端把表单提交了,需要后台验证,传输的这个数据是由前端提交?还是后端去获取?(PS:因为PHP我是一点都学学过,所以根本不懂,原来毕业设计的时候用的是.net,所以我理解过程是前端把数据提交给后台处理,然后再返回给前端。但PHP我又找不到这样的方法...)

#3


你佩服你老板。说说你作些什么工作。你所说的后端又作什么。

原来公司的分工是:java struts+美工为前端,从业务处理开始由另一组人作.

php:美工作出模板+html为前端,其它的由非前端人员接手。不同公司相信都有不同划分

#4


那么最简单的一点,表单验证问题,我前端把表单提交了,需要后台验证,传输的这个数据是由前端提交?还是后端去获取?

re:
应该是你所说的后端给你一个地址,告诉你它需要什么数据结构,你在你的html中据此工作。不要分的太清,大家在一起工作一个作不完项目都不算完。你也学一学你所说的后端

#5


引用 4 楼 xiaofanku 的回复:
那么最简单的一点,表单验证问题,我前端把表单提交了,需要后台验证,传输的这个数据是由前端提交?还是后端去获取?

re:
应该是你所说的后端给你一个地址,告诉你它需要什么数据结构,你在你的html中据此工作。不要分的太清,大家在一起工作一个作不完项目都不算完。你也学一学你所说的后端

非常感谢,我们公司的确是照你说得这样分工的。但目前情况是这样的,我才在公司实习一个月,很多东西没有接触到,还需要学习。但我和我的学校的小伙伴想做一个项目,就出现了现在的情况,因为我是做前端的,静态的HTML已经做了,他后台的数据库和一些功能也搭建好了,但我们都不知道怎么交互,所以我来问问。

#6


引用 2 楼 zpjshiwo77的回复:
Quote: 引用 1 楼 heaniryy 的回复:

所谓网页,归根结底就是一文本文件。所谓网页内容,归根结底就是一挺长的字符串。你只要把后台得到的字符放到前台页面需要的地方就行了。你用的是PHP,那么用echo把后台字符写到需要的地方就行


那么最简单的一点,表单验证问题,我前端把表单提交了,需要后台验证,传输的这个数据是由前端提交?还是后端去获取?(PS:因为PHP我是一点都学学过,所以根本不懂,原来毕业设计的时候用的是.net,所以我理解过程是前端把数据提交给后台处理,然后再返回给前端。但PHP我又找不到这样的方法...)

php也一样是前台提交(get和Post),后台处理,处理结果前台呈现,只不过net将前台后台分开了,aspx是前台,cs或vb是后台。你可以将php中的<??>或<?PHP?>理解为后台。如果还不明白,net中网页有一种将c#嵌入html中的写法很像php的写法,做几个这样的页面看看。
话说回来,你的后台代码不是有了吗?你只要考虑后台代码的反回值怎样显示就行了吧?

#7


引用 5 楼 zpjshiwo77 的回复:
Quote: 引用 4 楼 xiaofanku 的回复:

那么最简单的一点,表单验证问题,我前端把表单提交了,需要后台验证,传输的这个数据是由前端提交?还是后端去获取?

re:
应该是你所说的后端给你一个地址,告诉你它需要什么数据结构,你在你的html中据此工作。不要分的太清,大家在一起工作一个作不完项目都不算完。你也学一学你所说的后端

非常感谢,我们公司的确是照你说得这样分工的。但目前情况是这样的,我才在公司实习一个月,很多东西没有接触到,还需要学习。但我和我的学校的小伙伴想做一个项目,就出现了现在的情况,因为我是做前端的,静态的HTML已经做了,他后台的数据库和一些功能也搭建好了,但我们都不知道怎么交互,所以我来问问。


脚本类的服务器语言在这方面确实让人迷忙。以至于很多新人在一个页面中即有前端交互又跟数据库通信。所以像php,ruby有很多开源的mvc框架.

建议你多接触一些像java,.net这种系统的语言,对前和后的分界比较清楚。像java: 前端就是jsp(html + jstl标签。这样的页面没有任何java脚本)

jsp小示例

<div id="reader">
<jsp:include page="${initParam.theme}include/head.jsp" />
<aside id="left_menu" class="w260  menu_adaptive">
<span id="channel_menu">
<a id="channel_menu" class="h50" href="javascript:;">频道类别</a>
<em id="ico_channel_add" class="ico" title="创建类别">创建类别</em>
</span>
<section id="channelset">
<c:forEach items="${GLcategory}" var="cate">
<a class="channel_item" id="gate_${cate.enname}" href="${pageContext.request.contextPath}/channel/category?cid=${cate.ccid}">${cate.cnname}</a>
</c:forEach>
</section>
</aside>
<main id="pagebox" class="ml260">
<div id="page_wrap">
<nav id="page_navigate" class="h50">
<div id="ps_box" class="wrap_subject_dropmenu">
<h1 id="page_subject">频道列表</h1>
<ul id="ps_menu" class="menu_segment">
<li class="focus"><a href="javascript:;">所有频道</a></li>
<li><a href="/channel/mine">我的频道</a></li>
<li><a href="/channel/build">创建频道</a></li>
</ul>
</div>
<div id="reader_duty">
<span id="channel_navi"><a href="javascript:;">全选</a><a href="javascript:;">反选</a></span>
<span id="channel_tool"><a role="button" href="javascript:;" data-link="/channel/subscribe">订阅</a><a role="button" href="javascript:;" data-link="/channel/unsubscribe">退订</a></span>
</div>
</nav>
<section id="page_content">
<c:forEach items="${requestScope.chs}" var="channel">
<article class="card" id="${channel.rid}">
<div class="item_cover" style="background-image:url('${initParam.theme}style/bg_thumb.png')">封面</div>
<div class="item_subject">
<em class="ico rss_ico rss_ico_readed">&nbsp;</em>
<a class="item_title" href="${pageContext.request.contextPath}/news/today?chid=${channel.rid}">${channel.name}</a>
</div>
<time class="item_realtime">
<fmt:setLocale value="en_US" />
<fmt:timeZone value="Asia/Shanghai">
<fmt:formatDate value="${channel.lastbuildate}" type="both" pattern="EEE, dd MMM yyyy hh:mm:ss z"></fmt:formatDate>
</fmt:timeZone>
</time>
<div class="stat_collect">
<dl><dt>新闻</dt><dd>${channel.news}</dd></dl>
<dl><dt>订阅</dt><dd>${channel.subs}</dd></dl>
</div>
<div class="item_menu"><em class="ico ico_sml_menu"></em></div>
<c:set var="lcrid" value="${channel.rid}" />
<c:forEach var="sc" items="${requestScope.cts}">
<c:if test="${sc == lcrid}"><mark class="subscribed">&nbsp;</mark></c:if>
</c:forEach>
</article>
</c:forEach>
</section>
<c:set var="pUS" value="${requestScope.pO.prevUrl}" scope="request" />
<c:set var="nUS" value="${requestScope.pO.nextUrl}" scope="request" />
<div id="pag_ination">
        <a class="prev_pag" href="${pUS}">上一页</a>
        <input type="text" name="pag" size="2" value="<c:out value="${param.p}" default="1"/>/${requestScope.pH.pageCount}" readonly="readonly" />
        <a class="next_pag" href="${nUS}">下一页</a>
</div>
</div>
</main>
</div>
<jsp:include page="${initParam.theme}include/bottom.jsp" />

#8


没学过PHP,都是用Java EE的,前后端交互,前端数据通过表单提交或者放在session里面,然后后台就可以获取数据进行处理,这些做后台的不可能不知道吧?主要是沟通,需要什么参数,参数传递方式等等。不知道有没有什么帮助。

#1


所谓网页,归根结底就是一文本文件。所谓网页内容,归根结底就是一挺长的字符串。你只要把后台得到的字符放到前台页面需要的地方就行了。你用的是PHP,那么用echo把后台字符写到需要的地方就行

#2


引用 1 楼 heaniryy 的回复:
所谓网页,归根结底就是一文本文件。所谓网页内容,归根结底就是一挺长的字符串。你只要把后台得到的字符放到前台页面需要的地方就行了。你用的是PHP,那么用echo把后台字符写到需要的地方就行


那么最简单的一点,表单验证问题,我前端把表单提交了,需要后台验证,传输的这个数据是由前端提交?还是后端去获取?(PS:因为PHP我是一点都学学过,所以根本不懂,原来毕业设计的时候用的是.net,所以我理解过程是前端把数据提交给后台处理,然后再返回给前端。但PHP我又找不到这样的方法...)

#3


你佩服你老板。说说你作些什么工作。你所说的后端又作什么。

原来公司的分工是:java struts+美工为前端,从业务处理开始由另一组人作.

php:美工作出模板+html为前端,其它的由非前端人员接手。不同公司相信都有不同划分

#4


那么最简单的一点,表单验证问题,我前端把表单提交了,需要后台验证,传输的这个数据是由前端提交?还是后端去获取?

re:
应该是你所说的后端给你一个地址,告诉你它需要什么数据结构,你在你的html中据此工作。不要分的太清,大家在一起工作一个作不完项目都不算完。你也学一学你所说的后端

#5


引用 4 楼 xiaofanku 的回复:
那么最简单的一点,表单验证问题,我前端把表单提交了,需要后台验证,传输的这个数据是由前端提交?还是后端去获取?

re:
应该是你所说的后端给你一个地址,告诉你它需要什么数据结构,你在你的html中据此工作。不要分的太清,大家在一起工作一个作不完项目都不算完。你也学一学你所说的后端

非常感谢,我们公司的确是照你说得这样分工的。但目前情况是这样的,我才在公司实习一个月,很多东西没有接触到,还需要学习。但我和我的学校的小伙伴想做一个项目,就出现了现在的情况,因为我是做前端的,静态的HTML已经做了,他后台的数据库和一些功能也搭建好了,但我们都不知道怎么交互,所以我来问问。

#6


引用 2 楼 zpjshiwo77的回复:
Quote: 引用 1 楼 heaniryy 的回复:

所谓网页,归根结底就是一文本文件。所谓网页内容,归根结底就是一挺长的字符串。你只要把后台得到的字符放到前台页面需要的地方就行了。你用的是PHP,那么用echo把后台字符写到需要的地方就行


那么最简单的一点,表单验证问题,我前端把表单提交了,需要后台验证,传输的这个数据是由前端提交?还是后端去获取?(PS:因为PHP我是一点都学学过,所以根本不懂,原来毕业设计的时候用的是.net,所以我理解过程是前端把数据提交给后台处理,然后再返回给前端。但PHP我又找不到这样的方法...)

php也一样是前台提交(get和Post),后台处理,处理结果前台呈现,只不过net将前台后台分开了,aspx是前台,cs或vb是后台。你可以将php中的<??>或<?PHP?>理解为后台。如果还不明白,net中网页有一种将c#嵌入html中的写法很像php的写法,做几个这样的页面看看。
话说回来,你的后台代码不是有了吗?你只要考虑后台代码的反回值怎样显示就行了吧?

#7


引用 5 楼 zpjshiwo77 的回复:
Quote: 引用 4 楼 xiaofanku 的回复:

那么最简单的一点,表单验证问题,我前端把表单提交了,需要后台验证,传输的这个数据是由前端提交?还是后端去获取?

re:
应该是你所说的后端给你一个地址,告诉你它需要什么数据结构,你在你的html中据此工作。不要分的太清,大家在一起工作一个作不完项目都不算完。你也学一学你所说的后端

非常感谢,我们公司的确是照你说得这样分工的。但目前情况是这样的,我才在公司实习一个月,很多东西没有接触到,还需要学习。但我和我的学校的小伙伴想做一个项目,就出现了现在的情况,因为我是做前端的,静态的HTML已经做了,他后台的数据库和一些功能也搭建好了,但我们都不知道怎么交互,所以我来问问。


脚本类的服务器语言在这方面确实让人迷忙。以至于很多新人在一个页面中即有前端交互又跟数据库通信。所以像php,ruby有很多开源的mvc框架.

建议你多接触一些像java,.net这种系统的语言,对前和后的分界比较清楚。像java: 前端就是jsp(html + jstl标签。这样的页面没有任何java脚本)

jsp小示例

<div id="reader">
<jsp:include page="${initParam.theme}include/head.jsp" />
<aside id="left_menu" class="w260  menu_adaptive">
<span id="channel_menu">
<a id="channel_menu" class="h50" href="javascript:;">频道类别</a>
<em id="ico_channel_add" class="ico" title="创建类别">创建类别</em>
</span>
<section id="channelset">
<c:forEach items="${GLcategory}" var="cate">
<a class="channel_item" id="gate_${cate.enname}" href="${pageContext.request.contextPath}/channel/category?cid=${cate.ccid}">${cate.cnname}</a>
</c:forEach>
</section>
</aside>
<main id="pagebox" class="ml260">
<div id="page_wrap">
<nav id="page_navigate" class="h50">
<div id="ps_box" class="wrap_subject_dropmenu">
<h1 id="page_subject">频道列表</h1>
<ul id="ps_menu" class="menu_segment">
<li class="focus"><a href="javascript:;">所有频道</a></li>
<li><a href="/channel/mine">我的频道</a></li>
<li><a href="/channel/build">创建频道</a></li>
</ul>
</div>
<div id="reader_duty">
<span id="channel_navi"><a href="javascript:;">全选</a><a href="javascript:;">反选</a></span>
<span id="channel_tool"><a role="button" href="javascript:;" data-link="/channel/subscribe">订阅</a><a role="button" href="javascript:;" data-link="/channel/unsubscribe">退订</a></span>
</div>
</nav>
<section id="page_content">
<c:forEach items="${requestScope.chs}" var="channel">
<article class="card" id="${channel.rid}">
<div class="item_cover" style="background-image:url('${initParam.theme}style/bg_thumb.png')">封面</div>
<div class="item_subject">
<em class="ico rss_ico rss_ico_readed">&nbsp;</em>
<a class="item_title" href="${pageContext.request.contextPath}/news/today?chid=${channel.rid}">${channel.name}</a>
</div>
<time class="item_realtime">
<fmt:setLocale value="en_US" />
<fmt:timeZone value="Asia/Shanghai">
<fmt:formatDate value="${channel.lastbuildate}" type="both" pattern="EEE, dd MMM yyyy hh:mm:ss z"></fmt:formatDate>
</fmt:timeZone>
</time>
<div class="stat_collect">
<dl><dt>新闻</dt><dd>${channel.news}</dd></dl>
<dl><dt>订阅</dt><dd>${channel.subs}</dd></dl>
</div>
<div class="item_menu"><em class="ico ico_sml_menu"></em></div>
<c:set var="lcrid" value="${channel.rid}" />
<c:forEach var="sc" items="${requestScope.cts}">
<c:if test="${sc == lcrid}"><mark class="subscribed">&nbsp;</mark></c:if>
</c:forEach>
</article>
</c:forEach>
</section>
<c:set var="pUS" value="${requestScope.pO.prevUrl}" scope="request" />
<c:set var="nUS" value="${requestScope.pO.nextUrl}" scope="request" />
<div id="pag_ination">
        <a class="prev_pag" href="${pUS}">上一页</a>
        <input type="text" name="pag" size="2" value="<c:out value="${param.p}" default="1"/>/${requestScope.pH.pageCount}" readonly="readonly" />
        <a class="next_pag" href="${nUS}">下一页</a>
</div>
</div>
</main>
</div>
<jsp:include page="${initParam.theme}include/bottom.jsp" />

#8


没学过PHP,都是用Java EE的,前后端交互,前端数据通过表单提交或者放在session里面,然后后台就可以获取数据进行处理,这些做后台的不可能不知道吧?主要是沟通,需要什么参数,参数传递方式等等。不知道有没有什么帮助。