PHP foreach,CSS和jQuery脚本..如何进行交互?

我正在尝试在PHP文件上使用jQuery show / hide脚本,它是这样的:< / p>

 &lt;?php 
foreach($ empresas as $ empresa){
echo“&lt; style type ='text / css'&gt;
。$ empresa [teaserid] {
width:100%;
background-color:#CCC;
color:#000;
margin-top:10px;
border:1px solid #CCC;
position:relative;
vertical-align:middle;
}
.showhide $ empresa [teaserid] {
display:none;
}
&lt; / style&gt;“;
echo'&lt; script type =”text / javascript“&gt;';
echo'$( 文件).ready(function(){';
echo'$(\“。$ empresa [teaserid] \”)。hide();';
echo'$(\“。showhide $ empresa [teaserid] \” ).show();';
echo'$(\“。showhide $ empresa [teaserid] \”)。click(function(){';
echo'$(\“。$ empresa [teaserid] \”) .slideToggle(),500;';
echo'});';
echo'});';
echo'&lt; / script&gt;';
echo“&lt; a href ='#'class ='showhide $ empresa [teaserid]'&gt; $ empresa [titulo]&lt; / a&gt;&lt; br /&gt;
&lt; div class ='$ empresa [teaserid]'&gt;
TEST&l t; / div&gt;“;
}
?&gt;
</ code> </ pre>

所以,我需要的是php中的foreach,它回应了新的CSS值和新的 jQuery脚本。 因为每个DIV需要不同的CSS和jQuery来关联,并能够显示和隐藏其内容。 这种回声无效。 CSS没问题,但jQuery没有PHP $字符串。 我该怎么办?
或者有更简单的方法吗? 一个独立于任何当前div的jQuery函数?
谢谢任何帮助我的人... </ p>
</ div>

展开原文

原文

i'm trying to use a jQuery show/hide script on a PHP file, and it goes like this:

<?php
foreach ($empresas as $empresa) {
echo "<style type='text/css'>
.$empresa[teaserid] { 
width:100%;
background-color: #CCC;
color: #000;
margin-top:10px;
border:1px solid #CCC;
position:relative;
vertical-align:middle;
}
.showhide$empresa[teaserid] {
    display:none;
}
</style>";
echo '<script type="text/javascript">';
echo ' $(document).ready(function(){ ';
echo '         $(\".$empresa[teaserid]\").hide(); ';
echo '         $(\".showhide$empresa[teaserid]\").show(); ';
echo '  $(\".showhide$empresa[teaserid]\").click(function(){ ';
echo '  $(\".$empresa[teaserid]\").slideToggle(), 500; ';
echo '  }); ';
echo ' });';
echo '</script>';
echo "<a href='#' class='showhide$empresa[teaserid]'>$empresa[titulo]</a><br />
    <div class='$empresa[teaserid]'>
TEST</div>";
}
?>

So, what I need is a foreach in php that echoes new CSS values and a new jQuery script. because each DIV needs different CSS and jQuery to relate and be able to show and hide its content. This echoing didn't work. The CSS goes ok, but the jQuery doesn't with the PHP $strings. What can I do? Or there's a simpler way to do this? A jQuery function that relates to any current div alone ? Thanks anyone who helps me in this one..

dongwei5794
dongwei5794 这个难题有两个单独的部分,这就是为什么它被称为“客户端-服务器”关系。这两个人没有按照你的想法互动。PHP生成HTML。HTML将传递给浏览器。用户执行某些操作,将一些数据传递回PHP文件,然后PHP文件决定为用户的下一页生成哪个HTML。
大约 9 年之前 回复
duanneng2014
duanneng2014 好吧,我们都开始了某个地方..tinsology.net/2009/06/client-side-vs-server-side-code读取这个...灯泡将打开然后
大约 9 年之前 回复
dongpan3001
dongpan3001 我不是程序员..:(你可能会看到...
大约 9 年之前 回复
douwei7976
douwei7976 ahhhhhhhhhhhhhh!
大约 9 年之前 回复

3个回答



在PHP中,您只能将变量放在双引号字符串中:</ p>

  $  a ='Jon'; 
echo“Hi $ a”; //应输出'Hi Jon'
echo'Hi $ a'; //应该输出'Hi $ a'
</ code> </ pre>

所以如果你想要Javascript读取:</ p>

  $  (“.Jon”)//其中Jon是$ a的值
</ code> </ pre>

然后在PHP中你可以这样输出:</ p>
\ n

  echo'$(\“。'。$ a。'\”)';  //注意我们将echo语句拆分为3个字符串的串联
</ code> </ pre>
</ div>

展开原文

原文

In PHP, you can only put variables in double quote strings:

$a = 'Jon';
echo "Hi $a"; // Should output 'Hi Jon'
echo 'Hi $a'; // should output 'Hi $a'

So if you want the Javascript to read:

$(".Jon") // where Jon is the value of $a

Then in PHP you can output it this way:

echo '$(\".' . $a . '\")'; // Notice we are splitting the echo statement into a concatenation of 3 strings

dsegw3424
dsegw3424 精细! 就像Jon Gu说的那样让它发挥作用!
大约 9 年之前 回复
douya6606
douya6606 大声笑哎呀,那绝对不应该在那里:)
大约 9 年之前 回复
duan0514324
duan0514324 以及如何在php中处理你的var语句?
大约 9 年之前 回复



值得一提的是:</ p>

您可以创建一个设置对象来保存您的变量。例如 :</ p>

你的php:</ p>

 &lt;?php 
$ settings = array('settingA'=&gt;'something',

'setsetB'=&gt;'其他',
'wat'=&gt; 9001);
?&gt;
</ code> </ pre>

保持你的JS 你的js文件 - scripts.js,无论如何。 但是你可以将它添加到你的html文件中:</ p>

 &lt; script&gt; 
var settings =&lt;?php echo json_encode($ settings)?&gt ;;
&lt; / script&gt;
</ code> </ pre>

输出结果如何? </ p>

  var settings = {“settingA”:“something”,“settingB”:“something else”,“wat”:9001}; 
</ code> </ pre>

因此,您可以将所需的服务器信息放在一个全局对象中(或将其作为应用程序对象的属性或其他内容)并可以访问它。 </ p>

  console.log(settings.settingA);  //返回“something”
</ code> </ pre>

进一步查看您的问题,不要忘记您不必留在PHP标记中。 我并不主张在你的CSS中需要PHP,但这应该有助于你掌握这个概念:</ p>

 &lt; style&gt; 
&lt;?php foreach($ empresas as $ empresa):?&gt;
.showhide&lt;?php echo $ empresa ['teaserid']?&gt; {
display:none;
}
&lt;?php endforeach; ?&gt;
&lt; / style&gt;
</ code> </ pre>
</ div>

展开原文

原文

Worth mentioning:

You can create a settings object to keep your variables in. For example:

Your php:

<?php
    $settings = array( 'settingA' => 'something',
                       'settingB' => 'something else',
                       'wat'      => 9001 );
?>

Keep your JS in your js file - scripts.js, whatever. But you can add this to your html file:

<script>
   var settings = <?php echo json_encode( $settings ) ?>;
</script>

What will that output?

var settings = {"settingA":"something","settingB":"something else","wat":9001};

So you can put your required server info in ONE global object (or put it as a property of your application object or something) and can access it.

console.log( settings.settingA ); // returns "something"

Looking further at your question, don't forget you dont' have to stay in the PHP tags. I'm not advocating ever needing PHP in your css, but this should help you grasp the concept:

<style>
  <?php foreach ($empresas as $empresa): ?>
    .showhide<?php echo $empresa['teaserid'] ?> {
      display:none;
     }  
  <?php endforeach; ?>
</style>

douchi5822
douchi5822 太棒了:谢谢!
大约 9 年之前 回复
duanqin4238
duanqin4238 这些东西。 所有这些事情。 做到这一切。
大约 9 年之前 回复



没有必要让PHP打印出每个项目的新CSS和Javascript块。 如果你编写css和javascript是一个好方法,那么它将全部为你处理。</ p>

要记住的另一件事是PHP是最基本的模板语言 ,所以如果你发现自己回应大量的代码,你可能会出错。 取而代之的是:</ p>

 &lt;?php 
$ variable =“SOme value”;
echo“一些带有&lt; html&gt;标签和东西的超长字符串 $ variables“;
?&gt;
</ code> </ pre>

您可以执行以下操作,多次打开和关闭标记。</ p>

< pre> &lt;?php $ variable =“SOme value”; ?&gt;
很长的大字符串&lt; html&gt; 标签和东西加上&lt;?php print $ variables; ?&gt;
</ code> </ pre>

有了这个,这里是你的代码的重写版本。
同样,不需要使用硬编码的PHP输出自定义Javascript ids,你需要的是构建你的javascript,这样它根本不需要知道任何东西,就像我一样。</ p>

 &lt; style type  ='text / css'&gt; 
/ * CSS是相同的,所以只需要在所有项目上使用一个类。 * /
.empresa-teaser {
width:100%;
background-color:#CCC;
color:#000;
margin-top:10px;
border:1px solid #CCC; \ n position:relative;
vertical-align:middle;
}
&lt; / style&gt;

&lt; script type =“text / javascript”&gt;
$(function(){
//隐藏 所有的戏弄者都要开始。
$(“。empresa-teaser”)。hide();

//为单击show / hide链接添加处理程序。
$(“。showhide- empresa-teaser“)。click(function(){

//点击它时,使用'empresa-teaser'类找到下一个项目
//并使用滑动切换效果显示它。
$(this).nextAll('。empresa-teaser:first')。slideToggle(500);
});
});
&lt; / script&gt;

&lt;?php foreach($ empresas as $ empresa){?&gt;

&lt; a href ='#'class =“showhide-empresa-teaser”&gt;
&lt;?php print $ empresa ['titulo']; ?&gt;
&lt; / a&gt;
&lt; br /&gt;
&lt; div class =“empresa-teaser”&gt; TEST&lt; / div&gt;

&lt;?php}?&gt;
</ code> </ pre>
</ div>

展开原文

原文

There isn't really a need to have the PHP print out a new block of CSS and Javascript for each item. If you write the css and javascript is a good way, then it will all be handled for you.

One other thing to keep in mind is that PHP is at it's most basic a templating language, so if you find yourself echoing large chunks of code, you are probably being something wrong. Instead something like this:

<?php
$variable = "SOme value";
echo "Some very long huge string with <html> tags and stuff plus $variables";
?>

You can do something like this, opening and closing the tags several times.

<?php $variable = "SOme value"; ?>
Some very long huge string with <html> tags and stuff plus <?php print $variables; ?>

With that covered, here is a reworked version of your code. As well, rather than needing to make PHP output custom Javascript with hard-coded ids, what you reall need is to structure your javascript so that it doesn't need to know ANY of that stuff at all, as I have done.

<style type='text/css'>
/* The CSS is the same, so just have one class that is used on all the items. */
.empresa-teaser { 
  width:100%;
  background-color: #CCC;
  color: #000;
  margin-top:10px;
  border:1px solid #CCC;
  position:relative;
  vertical-align:middle;
}
</style>

<script type="text/javascript">
  $(function(){
    // Hide all of the teasers to start.
    $(".empresa-teaser").hide();

    // Add a handler for when the show/hide link is clicked.
    $(".showhide-empresa-teaser").click(function(){

      // When it is clicked, find the next item with the 'empresa-teaser' class
      // and show it using a sliding toggle effect.
      $(this).nextAll('.empresa-teaser:first').slideToggle(500);
    });
  });
</script>


<?php foreach ($empresas as $empresa) { ?>

  <a href='#' class="showhide-empresa-teaser">
    <?php print $empresa['titulo']; ?>
  </a>
  <br />
  <div class="empresa-teaser">TEST</div>

<?php } ?>

duanbu4962
duanbu4962 哇! 这很漂亮! :)谢谢洛根!
大约 9 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问