来自wordpress数据库的查询中的回声值

时间:2014-02-19 18:52:58

标签: php jquery wordpress

我正在创建一个选项表单或我的wordpress主题,我似乎陷入了一些疑问。

我已经创建了一个小提示,告诉你我正在做什么,你会注意到这个值是由php脚本填充的,而不是显示php脚本,我希望它显示来自数据库的值,如果我在html中使用相同的表单,那么在jquery中它不会

这里是小提琴:http://jsfiddle.net/33Ks6/

这是我在html页面中使用的代码:

function kandibox_hero_upload_image_link_callback($args) {

$hero_options = get_option( 'kandibox_theme_hero_options' ); ?>
<div id='image_uploads_group'>
  <div id="imagebox_1">
 <label for="upload_image">
   <input id="show_upload_image_link_1" type="text" size="36" name="kandibox_theme_hero_options[show_upload_image_link_1]" value="<?php echo $hero_options['show_upload_image_link_1']; ?>" /> 
   <input id="show_upload_image_link_1_button" class="button upload_images" type="button" value="Upload Image" />
   <span class="description">Slide 1</span>
 </label>
 </div>
</div>

<?php
}

重要的一点是:

value="<?php echo $hero_options['show_upload_image_link_1']; ?>"

以下是我在jquery中如何发帖:

value=\" <?php echo $hero_options['show_upload_image_link_1']; ?> \"

2 个答案:

答案 0 :(得分:0)

我在一个名为cosa.php的文件中编写了你的​​代码,然后我执行了该文件,我得到了变量......

<?php

function kandibox_hero_upload_image_link_callback($args) {
$hero_options['show_upload_image_link_1'] = 'HOLA';
?>
<div id='image_uploads_group'>
  <div id="imagebox_1">
 <label for="upload_image">
   <input id="show_upload_image_link_1" type="text" size="36" name="kandibox_theme_hero_options[show_upload_image_link_1]" value="<?php echo $hero_options['show_upload_image_link_1']; ?>" />
   <input id="show_upload_image_link_1_button" class="button upload_images" type="button" value="Upload Image" />
   <span class="description">Slide 1</span>
 </label>
 </div>
</div>

<?php
}

echo kandibox_hero_upload_image_link_callback($args = null);

你是如何调用脚本的?你能执行这个并解释会发生什么吗?

更新

好的,根据您的评论,您的问题是,如果您在.JS文件中,服务器不会解释PHP,因为它认为是纯文本文件。如果您需要该值,则有两种解决方法:

  • 更改.php扩展名的.js扩展名。这很丑陋,并且在您调用文件时不允许您缓存该文件。

  • 在隐藏的DOM元素中输出值,或作为DOM元素中的数据值属性输出,然后通过jQuery检索它。我总是喜欢这种方法。为此,在主脚本中输出表单,在输入中添加一个名为data-thumb的属性,然后使用$('input.some_class_to_select_it')来获取它.attr('data-thumb “)。

更新2:示例:D

对于第二个选项:

  • PHP文件中的HTML表单应该有数据提示和类来抓取它:

    <input data-thumb="<?php echo ... ?>" class="input_thumb">

  • 你的jQuery形式你的.js文件将获取属性并将其写入输入:

    $('input.input_thumb').each( function() { $(this).val( $(this).attr('data-thumb'); });

我添加了.each(),因为这样您可以在页面中的多个元素中使用它,只需将类和数据拇指添加到您想要的任何输入中

答案 1 :(得分:0)

您需要在HTML / PHP文件中生成相关的JS内联,以便您可以将echo PHP变量直接放入代码中,或者您需要使用AJAX。

PHP是一种服务器端语言,因此当请求页面时,服务器会呈现PHP并将其发送到客户端浏览器。 JS通常是客户端语言(例如在这种情况下),因此在发生这种情况后在浏览器中在客户端执行。

这意味着他们无法在没有AJAX等特殊协议的情况下进行通信(否则,您可以通过在浏览器中执行JS将PHP脚本注入Web服务器)。

如果你将JS内联到你的php模板文件中,你可以像你的代码那样echo PHP语句 - 这些语句在发送初始请求时被评估,因此变量值将被呈现到代码中在JS执行之前。

否则,您需要编写一个JS AJAX函数,该函数从PHP脚本请求值。如果你不熟悉AJAX,这显然会更加有效(尽管jQuery has great AJAX functionality built in